From 22cb9c31cde8a125c3b7d159d8b50941cb5c7714 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Wed, 7 Jan 2009 01:44:40 -0800
Subject: Updated kernel to 2.6.27.  Updated latest PKGBUILD for various
 packages and recompiled.

---
 abs/core-testing/aufs-utils/PKGBUILD               |   11 +-
 abs/core-testing/aufs/PKGBUILD                     |   37 +-
 abs/core-testing/aufs/aufs.install                 |    6 +-
 abs/core-testing/binutils/PKGBUILD                 |   31 +-
 abs/core-testing/binutils/binutils.install         |   20 +
 abs/core-testing/gcc/PKGBUILD                      |   24 +-
 abs/core-testing/gcc/buildfix_new_bison.patch      |   22 +
 abs/core-testing/glibc/ChangeLog                   |    9 +-
 abs/core-testing/glibc/PKGBUILD                    |   88 +-
 abs/core-testing/glibc/glibc.install               |   49 +-
 abs/core-testing/kernel-headers/PKGBUILD           |   27 +-
 abs/core-testing/kernel26/PKGBUILD                 |  133 +-
 abs/core-testing/kernel26/config                   |  432 +++--
 abs/core-testing/kernel26/config.x86_64            |  405 ++--
 abs/core-testing/kernel26/kernel26.install         |    6 +-
 abs/core-testing/kernel26/logo_linux_mono.pbm      |  976 +---------
 abs/core-testing/kernel26/logo_linux_vga16.ppm     | 1064 +++++------
 abs/core-testing/lirc-utils/PKGBUILD               |    8 +-
 abs/core-testing/lirc/PKGBUILD                     |   12 +-
 abs/core-testing/madwifi/PKGBUILD                  |    8 +-
 abs/core-testing/madwifi/madwifi-ng.install        |    6 +-
 abs/core-testing/ndiswrapper/PKGBUILD              |   32 +-
 abs/core-testing/ndiswrapper/kernel-2.6.27.patch   |  116 ++
 .../ndiswrapper/ndiswrapper-CVE-2008-4395.patch    |   86 +
 abs/core-testing/ndiswrapper/ndiswrapper.install   |    6 +-
 abs/core-testing/rt2500/PKGBUILD                   |   16 +-
 abs/core-testing/rt2500/kernel-2.6.27.patch        |   64 +
 abs/core-testing/rt2500/rt2500.install             |    6 +-
 abs/core-testing/rt2x00-rt61-fw/PKGBUILD           |    4 +-
 abs/core-testing/rt2x00-rt71w-fw/PKGBUILD          |    4 +-
 abs/core-testing/tiacx/PKGBUILD                    |   15 +-
 abs/core-testing/tiacx/acx.install                 |    6 +-
 abs/core-testing/tiacx/kernel-2.6.27.patch         |   82 +
 abs/core-testing/tmp/PKGBUILD                      |  159 ++
 abs/core-testing/tmp/logo_linux_clut224.ppm        |  883 +++++++++
 abs/core-testing/tmp/logo_linux_mono.pbm           |  883 +++++++++
 abs/core-testing/tmp/logo_linux_vga16.ppm          |  883 +++++++++
 abs/core-testing/wireless_tools/PKGBUILD           |   27 +
 abs/core-testing/wireless_tools/wireless.conf.d    |   12 +
 abs/core-testing/wlan-ng26-utils/PKGBUILD          |   14 +-
 .../wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base   |    9 +
 .../wlan-ng26-utils/tmp/trunk/.svn/entries         |  420 ++++
 .../wlan-ng26-utils/tmp/trunk/.svn/format          |    1 +
 .../tmp/trunk/.svn/prop-base/CHANGES.svn-base      |    9 +
 .../tmp/trunk/.svn/prop-base/COPYING.svn-base      |    9 +
 .../tmp/trunk/.svn/prop-base/Configure.svn-base    |   13 +
 .../tmp/trunk/.svn/prop-base/FAQ.svn-base          |    9 +
 .../tmp/trunk/.svn/prop-base/LICENSE.svn-base      |    9 +
 .../tmp/trunk/.svn/prop-base/Makefile.svn-base     |    9 +
 .../tmp/trunk/.svn/prop-base/README.svn-base       |    9 +
 .../tmp/trunk/.svn/prop-base/THANKS.svn-base       |    9 +
 .../tmp/trunk/.svn/prop-base/TODO.svn-base         |    9 +
 .../tmp/trunk/.svn/prop-base/config.in.svn-base    |    9 +
 .../tmp/trunk/.svn/text-base/CHANGES.svn-base      | 1267 +++++++++++++
 .../tmp/trunk/.svn/text-base/COPYING.svn-base      |   57 +
 .../tmp/trunk/.svn/text-base/Configure.svn-base    |  486 +++++
 .../tmp/trunk/.svn/text-base/FAQ.svn-base          |  468 +++++
 .../tmp/trunk/.svn/text-base/LICENSE.svn-base      |  563 ++++++
 .../tmp/trunk/.svn/text-base/Makefile.svn-base     |  148 ++
 .../tmp/trunk/.svn/text-base/README.svn-base       |  321 ++++
 .../tmp/trunk/.svn/text-base/THANKS.svn-base       |  147 ++
 .../tmp/trunk/.svn/text-base/TODO.svn-base         |   86 +
 .../tmp/trunk/.svn/text-base/config.in.svn-base    |   20 +
 .../trunk/.svn/text-base/scm-moved-to-git.svn-base |   11 +
 abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES | 1267 +++++++++++++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING |   57 +
 .../wlan-ng26-utils/tmp/trunk/Configure            |  486 +++++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ     |  468 +++++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE |  563 ++++++
 .../wlan-ng26-utils/tmp/trunk/Makefile             |  148 ++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/README  |  321 ++++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS  |  147 ++
 abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO    |   86 +
 .../wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries |   34 +
 .../wlan-ng26-utils/tmp/trunk/add-ons/.svn/format  |    1 +
 .../tmp/trunk/add-ons/keygen/.svn/entries          |   96 +
 .../tmp/trunk/add-ons/keygen/.svn/format           |    1 +
 .../keygen/.svn/prop-base/Makefile.svn-base        |    9 +
 .../keygen/.svn/prop-base/keygen.c.svn-base        |    9 +
 .../keygen/.svn/text-base/Makefile.svn-base        |   49 +
 .../keygen/.svn/text-base/keygen.c.svn-base        |  183 ++
 .../tmp/trunk/add-ons/keygen/Makefile              |   49 +
 .../tmp/trunk/add-ons/keygen/keygen.c              |  183 ++
 .../tmp/trunk/add-ons/lwepgen/.svn/entries         |   96 +
 .../tmp/trunk/add-ons/lwepgen/.svn/format          |    1 +
 .../lwepgen/.svn/prop-base/Makefile.svn-base       |    9 +
 .../lwepgen/.svn/prop-base/lwepgen.c.svn-base      |    9 +
 .../lwepgen/.svn/text-base/Makefile.svn-base       |   11 +
 .../lwepgen/.svn/text-base/lwepgen.c.svn-base      |  162 ++
 .../tmp/trunk/add-ons/lwepgen/Makefile             |   11 +
 .../tmp/trunk/add-ons/lwepgen/lwepgen.c            |  162 ++
 .../wlan-ng26-utils/tmp/trunk/config.in            |   20 +
 .../wlan-ng26-utils/tmp/trunk/doc/.svn/entries     |  241 +++
 .../wlan-ng26-utils/tmp/trunk/doc/.svn/format      |    1 +
 .../tmp/trunk/doc/.svn/prop-base/Makefile.svn-base |    9 +
 .../doc/.svn/prop-base/capturefrm.txt.svn-base     |    9 +
 .../trunk/doc/.svn/prop-base/config.debug.svn-base |    9 +
 .../.svn/prop-base/config.linux-wlan-ng.svn-base   |    9 +
 .../doc/.svn/prop-base/releasepolicy.txt.svn-base  |    9 +
 .../trunk/doc/.svn/prop-base/rh71notes.svn-base    |    9 +
 .../tmp/trunk/doc/.svn/text-base/Makefile.svn-base |   56 +
 .../doc/.svn/text-base/capturefrm.txt.svn-base     |  233 +++
 .../trunk/doc/.svn/text-base/config.debug.svn-base |   90 +
 .../.svn/text-base/config.linux-wlan-ng.svn-base   |  264 +++
 .../doc/.svn/text-base/releasepolicy.txt.svn-base  |   37 +
 .../trunk/doc/.svn/text-base/rh71notes.svn-base    |   61 +
 .../wlan-ng26-utils/tmp/trunk/doc/Makefile         |   56 +
 .../wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt   |  233 +++
 .../tmp/trunk/doc/codingstd/.svn/entries           |  198 ++
 .../tmp/trunk/doc/codingstd/.svn/format            |    1 +
 .../codingstd/.svn/prop-base/format.hfile.svn-base |    9 +
 .../.svn/prop-base/format.srcfile.c.svn-base       |    9 +
 .../.svn/prop-base/format.srcfile.html.svn-base    |    9 +
 .../.svn/prop-base/format.srcfile.svn-base         |    9 +
 .../.svn/prop-base/linux.CodingStyle.svn-base      |    9 +
 .../codingstd/.svn/text-base/format.hfile.svn-base |  142 ++
 .../.svn/text-base/format.srcfile.c.svn-base       |  113 ++
 .../.svn/text-base/format.srcfile.html.svn-base    |  311 +++
 .../.svn/text-base/format.srcfile.svn-base         |  138 ++
 .../.svn/text-base/linux.CodingStyle.svn-base      |  212 +++
 .../tmp/trunk/doc/codingstd/format.hfile           |  142 ++
 .../tmp/trunk/doc/codingstd/format.srcfile         |  138 ++
 .../tmp/trunk/doc/codingstd/format.srcfile.c       |  113 ++
 .../tmp/trunk/doc/codingstd/format.srcfile.html    |  311 +++
 .../tmp/trunk/doc/codingstd/linux.CodingStyle      |  212 +++
 .../wlan-ng26-utils/tmp/trunk/doc/config.debug     |   90 +
 .../tmp/trunk/doc/config.linux-wlan-ng             |  264 +++
 .../tmp/trunk/doc/impnotes/.svn/entries            |   96 +
 .../tmp/trunk/doc/impnotes/.svn/format             |    1 +
 .../impnotes/.svn/prop-base/l8s_uses.obj.svn-base  |    9 +
 .../impnotes/.svn/prop-base/structptr.obj.svn-base |    9 +
 .../impnotes/.svn/text-base/l8s_uses.obj.svn-base  |  294 +++
 .../impnotes/.svn/text-base/structptr.obj.svn-base |  256 +++
 .../tmp/trunk/doc/impnotes/l8s_uses.obj            |  294 +++
 .../tmp/trunk/doc/impnotes/structptr.obj           |  256 +++
 .../tmp/trunk/doc/prism2/.svn/entries              |  164 ++
 .../tmp/trunk/doc/prism2/.svn/format               |    1 +
 .../.svn/prop-base/ridlist-mib.html.svn-base       |    9 +
 .../prism2/.svn/prop-base/ridlist-mib.txt.svn-base |    9 +
 .../.svn/prop-base/ridlist-rid.html.svn-base       |    9 +
 .../prism2/.svn/prop-base/ridlist-rid.txt.svn-base |    9 +
 .../.svn/text-base/ridlist-mib.html.svn-base       | 2001 ++++++++++++++++++++
 .../prism2/.svn/text-base/ridlist-mib.txt.svn-base |  510 +++++
 .../.svn/text-base/ridlist-rid.html.svn-base       | 2001 ++++++++++++++++++++
 .../prism2/.svn/text-base/ridlist-rid.txt.svn-base |  510 +++++
 .../tmp/trunk/doc/prism2/ridlist-mib.html          | 2001 ++++++++++++++++++++
 .../tmp/trunk/doc/prism2/ridlist-mib.txt           |  510 +++++
 .../tmp/trunk/doc/prism2/ridlist-rid.html          | 2001 ++++++++++++++++++++
 .../tmp/trunk/doc/prism2/ridlist-rid.txt           |  510 +++++
 .../tmp/trunk/doc/releasepolicy.txt                |   37 +
 .../wlan-ng26-utils/tmp/trunk/doc/rh71notes        |   61 +
 .../wlan-ng26-utils/tmp/trunk/etc/.svn/entries     |  139 ++
 .../wlan-ng26-utils/tmp/trunk/etc/.svn/format      |    1 +
 .../tmp/trunk/etc/.svn/prop-base/Makefile.svn-base |    9 +
 .../tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base  |   13 +
 .../trunk/etc/.svn/prop-base/wlan.agent.svn-base   |   13 +
 .../tmp/trunk/etc/.svn/text-base/Makefile.svn-base |   67 +
 .../tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base  |   96 +
 .../trunk/etc/.svn/text-base/wlan.agent.svn-base   |   78 +
 .../wlan-ng26-utils/tmp/trunk/etc/Makefile         |   67 +
 .../tmp/trunk/etc/pcmcia/.svn/entries              |  130 ++
 .../tmp/trunk/etc/pcmcia/.svn/format               |    1 +
 .../etc/pcmcia/.svn/prop-base/Makefile.svn-base    |    9 +
 .../pcmcia/.svn/prop-base/wlan-ng.conf.svn-base    |   13 +
 .../etc/pcmcia/.svn/prop-base/wlan-ng.svn-base     |   13 +
 .../etc/pcmcia/.svn/text-base/Makefile.svn-base    |   81 +
 .../pcmcia/.svn/text-base/wlan-ng.conf.svn-base    |  190 ++
 .../etc/pcmcia/.svn/text-base/wlan-ng.svn-base     |  204 ++
 .../wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile  |   81 +
 .../wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng   |  204 ++
 .../tmp/trunk/etc/pcmcia/wlan-ng.conf              |  190 ++
 .../wlan-ng26-utils/tmp/trunk/etc/rc.wlan          |   96 +
 .../tmp/trunk/etc/udev/.svn/entries                |   31 +
 .../wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format |    1 +
 .../tmp/trunk/etc/udev/rules.d/.svn/entries        |   62 +
 .../tmp/trunk/etc/udev/rules.d/.svn/format         |    1 +
 .../.svn/text-base/40-prism2.rules.svn-base        |    2 +
 .../tmp/trunk/etc/udev/rules.d/40-prism2.rules     |    2 +
 .../wlan-ng26-utils/tmp/trunk/etc/wlan.agent       |   78 +
 .../tmp/trunk/etc/wlan/.svn/entries                |  198 ++
 .../wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format |    1 +
 .../etc/wlan/.svn/prop-base/Makefile.svn-base      |    9 +
 .../trunk/etc/wlan/.svn/prop-base/shared.svn-base  |    9 +
 .../etc/wlan/.svn/prop-base/wlan.conf.svn-base     |    9 +
 .../wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base   |    9 +
 .../etc/wlan/.svn/text-base/Makefile.svn-base      |   64 +
 .../trunk/etc/wlan/.svn/text-base/shared.svn-base  |  738 ++++++++
 .../etc/wlan/.svn/text-base/wlan-udev.sh.svn-base  |   46 +
 .../etc/wlan/.svn/text-base/wlan.conf.svn-base     |   84 +
 .../wlan/.svn/text-base/wlancfg-DEFAULT.svn-base   |   43 +
 .../wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile    |   64 +
 .../wlan-ng26-utils/tmp/trunk/etc/wlan/shared      |  738 ++++++++
 .../tmp/trunk/etc/wlan/wlan-udev.sh                |   46 +
 .../wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf   |   84 +
 .../tmp/trunk/etc/wlan/wlancfg-DEFAULT             |   43 +
 .../wlan-ng26-utils/tmp/trunk/man/.svn/entries     |  232 +++
 .../wlan-ng26-utils/tmp/trunk/man/.svn/format      |    1 +
 .../tmp/trunk/man/.svn/prop-base/Makefile.svn-base |    9 +
 .../trunk/man/.svn/prop-base/nwepgen.1.svn-base    |    9 +
 .../trunk/man/.svn/prop-base/wlancfg.1.svn-base    |    9 +
 .../trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base |    9 +
 .../tmp/trunk/man/.svn/prop-base/wland.1.svn-base  |    9 +
 .../tmp/trunk/man/.svn/text-base/Makefile.svn-base |   57 +
 .../trunk/man/.svn/text-base/nwepgen.1.svn-base    |   13 +
 .../trunk/man/.svn/text-base/prism2dl.1.svn-base   |   93 +
 .../trunk/man/.svn/text-base/wlancfg.1.svn-base    |   54 +
 .../trunk/man/.svn/text-base/wlanctl-ng.1.svn-base |   27 +
 .../tmp/trunk/man/.svn/text-base/wland.1.svn-base  |   23 +
 .../wlan-ng26-utils/tmp/trunk/man/Makefile         |   57 +
 .../wlan-ng26-utils/tmp/trunk/man/nwepgen.1        |   13 +
 .../wlan-ng26-utils/tmp/trunk/man/prism2dl.1       |   93 +
 .../wlan-ng26-utils/tmp/trunk/man/wlancfg.1        |   54 +
 .../wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1     |   27 +
 .../wlan-ng26-utils/tmp/trunk/man/wland.1          |   23 +
 .../wlan-ng26-utils/tmp/trunk/scm-moved-to-git     |   11 +
 .../tmp/trunk/scripts/.svn/dir-prop-base           |    8 +
 .../wlan-ng26-utils/tmp/trunk/scripts/.svn/entries |  164 ++
 .../wlan-ng26-utils/tmp/trunk/scripts/.svn/format  |    1 +
 .../.svn/prop-base/Makefile.get_options.svn-base   |    9 +
 .../trunk/scripts/.svn/prop-base/Makefile.svn-base |    9 +
 .../scripts/.svn/prop-base/get_version.c.svn-base  |    9 +
 .../trunk/scripts/.svn/prop-base/pda.pl.svn-base   |   13 +
 .../.svn/text-base/Makefile.get_options.svn-base   |   10 +
 .../trunk/scripts/.svn/text-base/Makefile.svn-base |   36 +
 .../scripts/.svn/text-base/get_version.c.svn-base  |   11 +
 .../trunk/scripts/.svn/text-base/pda.pl.svn-base   |  167 ++
 .../wlan-ng26-utils/tmp/trunk/scripts/Makefile     |   36 +
 .../tmp/trunk/scripts/Makefile.get_options         |   10 +
 .../tmp/trunk/scripts/get_version.c                |   11 +
 .../wlan-ng26-utils/tmp/trunk/scripts/pda.pl       |  167 ++
 .../tmp/wlan-ng26-svn-r1870.tar.bz2                |  Bin 0 -> 702058 bytes
 abs/core-testing/wlan-ng26/PKGBUILD                |   35 +-
 abs/core-testing/wlan-ng26/kernel-2.6.26.patch     |    3 +-
 abs/core-testing/wlan-ng26/kernel-2.6.27.patch     |  179 ++
 abs/core-testing/wlan-ng26/wlan-ng26.install       |    4 +-
 abs/extra-testing/sharutils/PKGBUILD               |   20 +
 236 files changed, 34521 insertions(+), 1983 deletions(-)
 create mode 100644 abs/core-testing/binutils/binutils.install
 create mode 100644 abs/core-testing/gcc/buildfix_new_bison.patch
 create mode 100644 abs/core-testing/ndiswrapper/kernel-2.6.27.patch
 create mode 100644 abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch
 create mode 100644 abs/core-testing/rt2500/kernel-2.6.27.patch
 create mode 100644 abs/core-testing/tiacx/kernel-2.6.27.patch
 create mode 100644 abs/core-testing/tmp/PKGBUILD
 create mode 100644 abs/core-testing/tmp/logo_linux_clut224.ppm
 create mode 100644 abs/core-testing/tmp/logo_linux_mono.pbm
 create mode 100644 abs/core-testing/tmp/logo_linux_vga16.ppm
 create mode 100644 abs/core-testing/wireless_tools/PKGBUILD
 create mode 100644 abs/core-testing/wireless_tools/wireless.conf.d
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/README
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c
 create mode 100755 abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl
 create mode 100644 abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2
 create mode 100644 abs/core-testing/wlan-ng26/kernel-2.6.27.patch
 create mode 100644 abs/extra-testing/sharutils/PKGBUILD

diff --git a/abs/core-testing/aufs-utils/PKGBUILD b/abs/core-testing/aufs-utils/PKGBUILD
index b845405..ee0932c 100644
--- a/abs/core-testing/aufs-utils/PKGBUILD
+++ b/abs/core-testing/aufs-utils/PKGBUILD
@@ -1,21 +1,24 @@
-# $Id: PKGBUILD 2265 2008-05-30 12:12:12Z paul $
+# $Id: PKGBUILD 15034 2008-10-12 11:58:48Z thomas $
 # Contributor: Paul Mattal <paul@mattal.com>
 # Maintainer: Paul Mattal <pjmattal@elys.com>
 pkgname=aufs-utils
-pkgver=20080527
+pkgver=20081012
 pkgrel=1
-_kernver='2.6.26-ARCH'
+_kernver='2.6.27-ARCH'
 pkgdesc="Another Unionfs Implementation that supports NFS branches"
 arch=('i686' 'x86_64')
 url="http://aufs.sourceforge.net/"
 license=('GPL2')
 depends=('glibc')
 source=(ftp://ftp.archlinux.org/other/aufs/aufs-$pkgver.tar.gz)
-md5sums=('4378221aa5763d1f4408a0bbb0e80f0a')
+md5sums=('fb5eaa69b2c7e6e521cb9a9cae9ac23f')
 
 build() {
   cd $startdir/src/aufs || return 1
 
+  # Fix TMPFS_MAGIC error
+  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1
+
   # configure for NFS by:
   # 1) configure local.mk to use FILP and LHASH
   sed -i 's|CONFIG_AUFS_PUT_FILP_PATCH =|CONFIG_AUFS_PUT_FILP_PATCH = y|' \
diff --git a/abs/core-testing/aufs/PKGBUILD b/abs/core-testing/aufs/PKGBUILD
index 57b6e24..37ae95f 100644
--- a/abs/core-testing/aufs/PKGBUILD
+++ b/abs/core-testing/aufs/PKGBUILD
@@ -1,34 +1,45 @@
-# $Id: PKGBUILD 5885 2008-07-21 19:28:11Z thomas $
+# $Id: PKGBUILD 15519 2008-10-14 07:05:41Z thomas $
 # Contributor: Paul Mattal <paul@mattal.com>
 # Maintainer: Paul Mattal <pjmattal@elys.com>
 pkgname=aufs
-pkgver=20080527
+pkgver=20081012
 pkgrel=2
-_kernver='2.6.26-ARCH'
+_kernver='2.6.27-ARCH'
 pkgdesc="Another Unionfs Implementation that supports NFS branches"
 arch=('i686' 'x86_64')
 url="http://aufs.sourceforge.net/"
 license=('GPL2')
-depends=('kernel26>=2.6.26-1' 'kernel26<=2.6.27' 'glibc' 'aufs-utils')
+depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'glibc' 'aufs-utils=20081012')
 install=$pkgname.install
 source=(ftp://ftp.archlinux.org/other/aufs/$pkgname-$pkgver.tar.gz)
 options=(!libtool !makeflags)
-md5sums=('4378221aa5763d1f4408a0bbb0e80f0a')
+md5sums=('fb5eaa69b2c7e6e521cb9a9cae9ac23f')
 
 build() {
   cd $startdir/src/$pkgname || return 1
 
-  # use splice functions exported by unionfs kernel patch
-  # - important for loopback fs mounts
-  sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/vfsub.h \
-    || return 1
+  # Fix TMPFS_MAGIC error
+  sed 's|-le 26|-le 27|g' -i fs/aufs25/Makefile || return 1
+
+  # use splice functions exported by unionfs kernel patch'
+  # - important for loopback fs mounts 
   sed -i 's|CONFIG_AUFS_SPLICE_PATCH =|CONFIG_AUFS_SPLICE_PATCH = y|' \
-    local.mk || return 1
+     local.mk || return 1
+
+  # this fixes the unionfs patch from hanging aufs
+  sed -i 's|CONFIG_AUFS_UNIONFS23_PATCH =|CONFIG_AUFS_UNIONFS23_PATCH = y|' \
+     local.mk || return 1
+
+  sed -i 's|CONFIG_AUFS_WORKAROUND_FUSE =|CONFIG_AUFS_WORKAROUND_FUSE = y|' \
+     local.mk || return 1
 
-  # patch for spin_lock conflict with the new unionfs patch
-  sed s'|#if.*KERNEL_VERSION(2, 6, 26).*|#if 0|' -i fs/aufs25/cpup.c \
-    || return 1
+  sed -i 's|CONFIG_AUFS_BRANCH_MAX_127 = y|CONFIG_AUFS_BRANCH_MAX_127 =|' \
+     local.mk || return 1
+          	        	       	       	   
+  sed -i 's|CONFIG_AUFS_BRANCH_MAX_1023 =|CONFIG_AUFS_BRANCH_MAX_1023 = y|' \
+     local.mk || return 1
 
+  # ???
   sed -i 's|.*CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
     local.mk || return 1
 
diff --git a/abs/core-testing/aufs/aufs.install b/abs/core-testing/aufs/aufs.install
index 42d039a..1a303d6 100644
--- a/abs/core-testing/aufs/aufs.install
+++ b/abs/core-testing/aufs/aufs.install
@@ -5,7 +5,7 @@ pre_install() {
 post_install() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.26-ARCH
+  KERNEL_VERSION=2.6.27-ARCH
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
@@ -13,7 +13,7 @@ post_install() {
 post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.26-ARCH
+  KERNEL_VERSION=2.6.27-ARCH
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
@@ -21,7 +21,7 @@ post_upgrade() {
 post_remove() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.26-ARCH
+  KERNEL_VERSION=2.6.27-ARCH
   depmod -v $KERNEL_VERSION > /dev/null 2>&1
   /bin/true
 }
diff --git a/abs/core-testing/binutils/PKGBUILD b/abs/core-testing/binutils/PKGBUILD
index f958da6..9a8b925 100644
--- a/abs/core-testing/binutils/PKGBUILD
+++ b/abs/core-testing/binutils/PKGBUILD
@@ -1,45 +1,46 @@
-# $Id: PKGBUILD 2707 2008-06-12 14:03:09Z andyrtr $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 19325 2008-11-20 11:47:00Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
-# compile always twice: first binutils, then gcc, then binutils again
+# toolchain build order: kernel-headers->glibc->binutils->gcc-libs->gcc->binutils->glibc
 
 pkgname=binutils
-pkgver=2.18
-pkgrel=17
-_date=20080610
+pkgver=2.19
+pkgrel=1
+_date=20081119
 pkgdesc="A set of programs to assemble and manipulate binary and object files"
 arch=('i686' 'x86_64')
 url="http://sources.redhat.com/binutils"
 license=('GPL')
 groups=('base')
 options=('!libtool' '!distcc' '!ccache')
-depends=('glibc>=2.8-1')
-makedepends=('texinfo>=4.12-2')
+depends=('glibc>=2.9-1' 'texinfo>=4.12-3')
 source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
-md5sums=('9847b4141a1c99558cfd88dd65182566')
+md5sums=('4a49694b08ef0e5931dba4813326d062')
+install=binutils.install
 
 build() {
   # for cvs checkout
 #  mkdir ${startdir}/src/${pkgname}-${_date}
 #  cd ${startdir}/src/${pkgname}-${_date}
-#  export _TAG=binutils-2_18-branch
+#  export _TAG=binutils-2_19-branch
 #  export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
 #  cvs -z9 co -r $_TAG binutils || return 1
-#  cd src && tar -cvjf ../binutils-2.18_${_date}.tar.bz2 *
+#  cd src && tar -cvjf ../../../binutils-2.19_${_date}.tar.bz2 *
 #  return 1
 
   cd ${startdir}/src
-  autoconf
 
   mkdir build
   cd build
 
   CC="gcc -L`pwd`/bfd/.libs/"
   if [ "${CARCH}" = "x86_64" ]; then
-    ../configure --prefix=/usr --enable-shared --enable-64-bit-bfd --disable-multilib 
+    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared --enable-64-bit-bfd --disable-multilib 
   else
-    ../configure --prefix=/usr --enable-shared
+    ../configure --prefix=/usr --infodir=/usr/share/info --enable-shared
   fi
+  # fix info files install path
+  sed -i -e "s:infodir \= \/usr\/share:infodir \= ${pkgdir}\/usr\/share:" ${srcdir}/build/Makefile || return 1
 
   # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
   make configure-host || return 1
@@ -64,4 +65,6 @@ build() {
   # Remove these symlinks, with binutils prereleases they are not ABI stable.
   # Programs should compile static to the .a file.
   rm -f ${startdir}/pkg/usr/lib/lib{bfd,opcodes}.so
+
+  rm -f ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/core-testing/binutils/binutils.install b/abs/core-testing/binutils/binutils.install
new file mode 100644
index 0000000..a1e762a
--- /dev/null
+++ b/abs/core-testing/binutils/binutils.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/gcc/PKGBUILD b/abs/core-testing/gcc/PKGBUILD
index 7319d97..f0d6b7e 100644
--- a/abs/core-testing/gcc/PKGBUILD
+++ b/abs/core-testing/gcc/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 17247 2008-10-27 08:12:22Z jgc $
+# $Id: PKGBUILD 19322 2008-11-20 11:36:53Z andyrtr $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=gcc
-pkgver=4.3.1
-pkgrel=1
-_snapshot=4.3-20080724
+pkgver=4.3.2
+pkgrel=2
+#_snapshot=4.3-20080724
 pkgdesc="The GNU Compiler Collection"
 arch=(i686 x86_64)
 license=('GPL' 'LGPL')
 groups=('base-devel')
 url="http://gcc.gnu.org"
-depends=('binutils>=2.18-9' "gcc-libs>=${pkgver}" 'mpfr>=2.3.1' 'texinfo')
+depends=('binutils>=2.19' "gcc-libs>=${pkgver}" 'mpfr>=2.3.1' 'texinfo')
 makedepends=('flex')
 replaces=('gcc-fortran' 'gcc-objc')
 options=('!libtool')
@@ -21,7 +21,18 @@ source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,o
 	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man-20080118.tar.bz2
 	gcc_pure64.patch
 	gcc-hash-style-both.patch
-	gcc-java-driver.patch)
+	gcc-java-driver.patch
+	buildfix_new_bison.patch)
+md5sums=('dd8048b43d3d4e5595bcade47b9144c6'
+         'bfdf8d19e1b85f522f8b8d48d25e7aaa'
+         'b3294ae213d65e05aacb9b46d11e1025'
+         '08efa42ef267f8759146aa4e11904d25'
+         '4a1dee5782dccc505072c6401cf1d4c3'
+         '990881456a89b1ffbd68d2d7188759da'
+         '4030ee1c08dd1e843c0225b772360e76'
+         'bb420bc84b1104455b7230b1cd4b96c2'
+         'c82665e579850eb37cdee8349d614dbe'
+         '412fb8ebb30958eb1a93e9bd89413dd7')
 
 build() {
   if ! locale -a | grep ^de_DE; then
@@ -39,6 +50,7 @@ build() {
   fi
   patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1
   patch -Np0 -i ${srcdir}/gcc-java-driver.patch || return 1
+  patch -Np0 -i ${srcdir}/buildfix_new_bison.patch || return 1
 
   echo ${pkgver} > gcc/BASE-VER
 
diff --git a/abs/core-testing/gcc/buildfix_new_bison.patch b/abs/core-testing/gcc/buildfix_new_bison.patch
new file mode 100644
index 0000000..01b8880
--- /dev/null
+++ b/abs/core-testing/gcc/buildfix_new_bison.patch
@@ -0,0 +1,22 @@
+--- gcc/treelang/parse.y	2007-07-18 08:19:29.000000000 +0000
++++ gcc/treelang/parse.y.new	2008-11-20 06:40:00.013275486 +0000
+@@ -369,7 +369,6 @@
+   current_function = NULL;
+ }
+ ;
+-
+ variable_defs_opt:
+ /* Nil.  */ {
+   $$ = 0;
+@@ -685,9 +684,9 @@
+ 
+ expressions_with_commas_opt:
+ /* Nil.  */ {
+-$$ = 0
++$$ = 0;
+ }
+-|expressions_with_commas { $$ = $1 }
++|expressions_with_commas { $$ = $1; }
+ ;
+ 
+ expressions_with_commas:
diff --git a/abs/core-testing/glibc/ChangeLog b/abs/core-testing/glibc/ChangeLog
index 79a44e7..dfd8a41 100644
--- a/abs/core-testing/glibc/ChangeLog
+++ b/abs/core-testing/glibc/ChangeLog
@@ -1,3 +1,10 @@
+glibc 2.9-2
+- apply Fedora10 changes to fix
+  name resolving issues
+
+glibc 2.9-1
+- bump to new 2.9 branch
+
 glibc 2.8-2
 - fix an old memory issue again
 
@@ -25,4 +32,4 @@ glibc 2.7-3
           localedata/tailor-iso14651_t1.diff partly
   to fix broken et_EE locale
 - switch to compressed patches
-- added ChangeLog
\ No newline at end of file
+- added ChangeLog
diff --git a/abs/core-testing/glibc/PKGBUILD b/abs/core-testing/glibc/PKGBUILD
index 68df516..01bf433 100644
--- a/abs/core-testing/glibc/PKGBUILD
+++ b/abs/core-testing/glibc/PKGBUILD
@@ -1,9 +1,11 @@
-# $Id: PKGBUILD 2685 2008-06-11 13:30:43Z andyrtr $
+# $Id: PKGBUILD 21686 2008-12-14 19:22:51Z andyrtr $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
 pkgname=glibc
-pkgver=2.8
-pkgrel=11
-_glibcdate=20080610
+pkgver=2.9
+pkgrel=2
+_glibcdate=20081119
 install=glibc.install
 backup=(etc/locale.gen)
 pkgdesc="GNU C Library"
@@ -11,16 +13,16 @@ arch=(i686 x86_64)
 license=('GPL' 'LGPL')
 url="http://www.gnu.org/software/libc"
 groups=('base')
-depends=('sh' 'kernel-headers>=2.6.25.6' 'tzdata')
-makedepends=('gcc>=4.3.1-1')
+depends=('sh' 'kernel-headers>=2.6.27.6' 'tzdata' 'texinfo')
+makedepends=('gcc>=4.3.2-2')
 replaces=('glibc-xen')
-source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-2.8_${_glibcdate}.tar.bz2
-	ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.bz2
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2
+	ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.gz
 	nscd
 	locale.gen.txt
 	locale-gen)
-md5sums=('63def58972f0e8429247916154c21323'
-         '3ec00d9aa3f2fec046bc3e615dfb723a'
+md5sums=('1f7cc590a7a9bbef8b09fe89af69fb8c'
+         '7679e2bcd981847efccb2bad9e57fee3'
          'b587ee3a70c9b3713099295609afde49'
          '07ac979b6ab5eeb778d55f041529d623'
          '476e9113489f93b348b21e144b6a8fcf')
@@ -28,27 +30,33 @@ md5sums=('63def58972f0e8429247916154c21323'
 build() {
 
   # for cvs checkout
-#  mkdir ${startdir}/src/glibc-${_glibcdate}
-#  cd ${startdir}/src/glibc-${_glibcdate}
-#  export _TAG=glibc-2_8-branch
-#  export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc'
+  mkdir ${srcdir}/glibc-${_glibcdate}
+  cd ${srcdir}/glibc-${_glibcdate}
+  export _TAG=glibc-2_9-branch
+  export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc'
 #  cvs -z9 co -r $_TAG libc || return 1
-#  tar -cvjf glibc-2.8_${_glibcdate}.tar.bz2 libc
+#  tar -cvjf ../../glibc-2.9_${_glibcdate}.tar.bz2 libc
 #  return 1
 
-  cd ${startdir}/src/libc
+  cd ${srcdir}/libc
 
   # patch from Debian
-  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed?
+  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed?
 
   # Upstream fixes. See sources.redhat.com bugzilla
-  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-2.7-bz4781.patch || return 1
+  patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.7-bz4781.patch || return 1
 
   # Gentoo fixes
-  patch -Np1 -i ${startdir}/src/glibc-patches/glibc-dont-build-timezone.patch || return 1
+  patch -Np1 -i ${srcdir}/glibc-patches/glibc-dont-build-timezone.patch || return 1
+
+  # fixes taken from FC10 2.9-3 rpm, fixes FS#12215
+  # see http://sources.redhat.com/bugzilla/show_bug.cgi?id=7060 
+  # see https://bugzilla.redhat.com/show_bug.cgi?id=459756
+  patch -Np1 -i ${srcdir}/glibc-patches/glibc-nss_dns-gethostbyname4-disable.patch || return 1
+  patch -Np1 -i ${srcdir}/glibc-patches/glibc-fixes1.patch || return 1
 
-  install -m755 -d ${startdir}/pkg/etc
-  touch ${startdir}/pkg/etc/ld.so.conf
+  install -m755 -d ${pkgdir}/etc
+  touch ${pkgdir}/etc/ld.so.conf
 
   mkdir glibc-build
   cd glibc-build
@@ -68,33 +76,35 @@ build() {
       --libdir=/usr/lib --without-gd
     
   make || return 1
-  make install_root=${startdir}/pkg install || return 1
+  make install_root=${pkgdir} install || return 1
 
-  rm -f ${startdir}/pkg/etc/ld.so.cache ${startdir}/pkg/etc/ld.so.conf ${startdir}/pkg/etc/localtime
+  rm -f ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf ${pkgdir}/etc/localtime
 
-  install -m755 -d ${startdir}/pkg/etc/rc.d
-  install -m755 -d ${startdir}/pkg/usr/sbin
-  install -m755 -d ${startdir}/pkg/usr/lib/locale
-  install -m644 ${startdir}/src/libc/nscd/nscd.conf ${startdir}/pkg/etc/nscd.conf
-  install -m755 ${startdir}/src/nscd ${startdir}/pkg/etc/rc.d/nscd
-  install -m755 ${startdir}/src/locale-gen ${startdir}/pkg/usr/sbin
+  install -m755 -d ${pkgdir}/etc/rc.d
+  install -m755 -d ${pkgdir}/usr/sbin
+  install -m755 -d ${pkgdir}/usr/lib/locale
+  install -m644 ${srcdir}/libc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+  install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
 
-  sed -i -e 's/^\tserver-user/#\tserver-user/' ${startdir}/pkg/etc/nscd.conf || return 1
+  sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf || return 1
 
   # create /etc/locale.gen
-  install -m644 ${startdir}/src/locale.gen.txt ${startdir}/pkg/etc/locale.gen
-  sed -i "s|/| |g" ${startdir}/src/libc/localedata/SUPPORTED
-  sed -i 's|\\| |g' ${startdir}/src/libc/localedata/SUPPORTED
-  sed -i "s|SUPPORTED-LOCALES=||" ${startdir}/src/libc/localedata/SUPPORTED
-  cat ${startdir}/src/libc/localedata/SUPPORTED >> ${startdir}/pkg/etc/locale.gen
-  sed -i "s|^|#|g" ${startdir}/pkg/etc/locale.gen
+  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+  sed -i "s|/| |g" ${srcdir}/libc/localedata/SUPPORTED
+  sed -i 's|\\| |g' ${srcdir}/libc/localedata/SUPPORTED
+  sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/libc/localedata/SUPPORTED
+  cat ${srcdir}/libc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+  sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
 
   if [ "${CARCH}" = "x86_64" ]; then
     # fix for the linker
-    sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${startdir}/pkg/usr/bin/ldd
+    sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${pkgdir}/usr/bin/ldd
     #Comply with multilib binaries, they look for the linker in /lib64
-    mkdir ${startdir}/pkg/lib64
-    cd ${startdir}/pkg/lib64
+    mkdir ${pkgdir}/lib64
+    cd ${pkgdir}/lib64
     ln -v -s ../lib/ld* .
   fi
+
+  rm -f ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/core-testing/glibc/glibc.install b/abs/core-testing/glibc/glibc.install
index 2a35040..2ed1127 100644
--- a/abs/core-testing/glibc/glibc.install
+++ b/abs/core-testing/glibc/glibc.install
@@ -1,3 +1,7 @@
+infodir=/usr/share/info
+filelist=(libc.info libc.info-1 libc.info-2 libc.info-3 libc.info-4 libc.info-5 libc.info-6 libc.info-7 
+          libc.info-8 libc.info-9 libc.info-10 libc.info-11)
+
 pre_upgrade() {
 if [ "`uname -m`" = "x86_64" ]; then
  if [ "`vercmp $2 2.4`" -lt 0 ]; then
@@ -29,15 +33,18 @@ mv /lib64 /lib && echo "/lib64 moved"
 
  fi
 fi
-}
 
+ for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
 
 post_upgrade() {
-  echo -n "reloading init: "
   ldconfig -r .
   init u
-  echo "done."
-  cat << _EOF
+
+  if [ "`vercmp $2 2.3.6`" -lt 0 ]; then
+    cat << _EOF
   ==> ATTENTION INTERNATIONAL USERS:
   ==>
   ==> Locales are no longer included in the glibc package.
@@ -46,21 +53,20 @@ post_upgrade() {
   ==> glibc will try to autodetect the required locales now, if you need
   ==> additional locales, please enable them in /etc/locale.gen and run
   ==> /usr/sbin/locale-gen
-  ==>
-  ==> Check /etc/locale.gen.pacnew for new supported locales
   ==>  
 _EOF
-  # Check active locales, enable the ones that are in use
-  loc=("$LANG"
-       "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`")
-  for l in "${loc[@]}"; do
-    if [ ! -z "${l}" ]; then
-      line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`"
-      if [ ! -z "${line}" ]; then
-        sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen
+    # Check active locales, enable the ones that are in use
+    loc=("$LANG"
+         "`grep '^LOCALE=' etc/rc.conf | awk -F '=' '{ print $2 }'`")
+    for l in "${loc[@]}"; do
+      if [ ! -z "${l}" ]; then
+        line="`grep -i "^#${l}[[:space:]]" etc/locale.gen`"
+        if [ ! -z "${line}" ]; then
+          sed -i -e "s|${line}|${line/\#/}|" etc/locale.gen
+        fi
       fi
-    fi
-  done
+    done
+  fi
 
   usr/sbin/locale-gen
 
@@ -115,8 +121,13 @@ if [ "`uname -m`" = "x86_64" ]; then
  fi
 fi
 
+ for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
 }
 
-op=$1
-shift
-$op $*
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
diff --git a/abs/core-testing/kernel-headers/PKGBUILD b/abs/core-testing/kernel-headers/PKGBUILD
index 485a918..91ecc59 100644
--- a/abs/core-testing/kernel-headers/PKGBUILD
+++ b/abs/core-testing/kernel-headers/PKGBUILD
@@ -1,27 +1,28 @@
-# $Id: PKGBUILD 3465 2008-06-22 20:06:08Z jgc $
+# $Id: PKGBUILD 19341 2008-11-20 14:48:13Z andyrtr $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
 pkgname=kernel-headers
-pkgver=2.6.25.8
-_basever=2.6.25
-pkgrel=10
+pkgver=2.6.27.6
+_basever=2.6.27
+pkgrel=2
 pkgdesc="Kernel headers sanitized for use in userspace"
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.gnu.org/software/libc"
 groups=('base')
 source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
-	http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2
-	netfilter-includes.patch)
-md5sums=('db95a49a656a3247d4995a797d333153'
-         '007e6aca33604bc09687790361026d3c'
-	 '671fa5d449e145199a871d1a41514122')
+	http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2)
+md5sums=('b3e78977aa79d3754cb7f8143d7ddabd'
+         'beec5a958abb1045c0b723dc1f195f7e')
 
 build() {
-  cd ${startdir}/src/linux-${_basever}
-  patch -Np1 -i ${startdir}/src/patch-${pkgver} || return 1
-  patch -Np1 -i ${startdir}/src/netfilter-includes.patch || return 1
+  cd ${srcdir}/linux-${_basever}
+  patch -Np1 -i ${srcdir}/patch-${pkgver} || return 1
 
   make mrproper
   make headers_check || return 1
-  make INSTALL_HDR_PATH=${startdir}/pkg/usr headers_install
+  make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+  rm -rf ${pkgdir}/usr/include/drm
 }
diff --git a/abs/core-testing/kernel26/PKGBUILD b/abs/core-testing/kernel26/PKGBUILD
index b96120c..3966ee1 100644
--- a/abs/core-testing/kernel26/PKGBUILD
+++ b/abs/core-testing/kernel26/PKGBUILD
@@ -1,12 +1,11 @@
-# $Id: PKGBUILD 10337 2008-08-26 21:10:56Z tpowa $
+# $Id: PKGBUILD 22035 2008-12-21 10:00:17Z tpowa $
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Maintainer: Thomas Baechler <thomas@archlinux.org>
 pkgname=kernel26
-_basekernel=2.6.26
-pkgver=2.6.26.3
-pkgrel=10
-#_patchname="patch-${pkgver}-${pkgrel}-ARCH"
-_patchname="patch-${pkgver}-1-ARCH"
+_basekernel=2.6.27
+pkgver=2.6.27.10
+pkgrel=1
+_patchname="patch-${pkgver}-${pkgrel}-ARCH"
 pkgdesc="The Linux Kernel and modules"
 arch=(i686 x86_64)
 license=('GPL2')
@@ -20,7 +19,8 @@ depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.18')
 replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
           'alsa-driver' 'ieee80211' 'hostap-driver26'
           'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
-	  'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs')
+          'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
+          'gspcav1')
 install=kernel26.install
 source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
         ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2
@@ -31,22 +31,22 @@ source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
 	logo_linux_clut224.ppm
 	logo_linux_mono.pbm
 	logo_linux_vga16.ppm)
-md5sums=('5169d01c405bc3f866c59338e217968c'
-         '003e89dd71b32ae9b93cd1601da3b1b0'
-	 '4fd1071a8dc2ea993aed81d5920de18d'
-         'd5ad1f296356d159a2616a49d98b3434'
-	 '25584700a0a679542929c4bed31433b6'
+md5sums=('b3e78977aa79d3754cb7f8143d7ddabd'
+         '05083482b71bc6c364a96d318e5b49fe'
+         '56ca3800d4567ba728382d02417152af'
+         '5e96d95aec10471017e8b7c12d11a2d3'
+         '25584700a0a679542929c4bed31433b6'
 	 '7bdfe2e1daedb324fdfdfa95ba4e2430'
-	 'a88d90384e50bd061a81fcc6573fc3bb'
-	 'f536292192a69d590b2ffd4700c14185')
+	 '3cc08afb1575b4c79d3f9c3410260ce2'
+	 'a54b65186d0922f3890f9716cdb4f4a5')
 
 build() {
   KARCH=x86
 
-  cd $startdir/src/linux-$_basekernel
+  cd ${srcdir}/linux-$_basekernel
   # Add -ARCH patches
   # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary
-  patch -Np1 -i $startdir/src/${_patchname} || return 1
+  patch -Np1 -i ${srcdir}/${_patchname} || return 1
 
   if [ "$CARCH" = "x86_64" ]; then
     cat ../config.x86_64 >./.config
@@ -54,13 +54,11 @@ build() {
     cat ../config >./.config
   fi
   cp ../logo_linux_clut224.ppm drivers/video/logo/
-  cp ../logo_linux_mono.ppm drivers/video/logo/
-  cp ../logo_linux_vga16.ppm drivers/video/logo/
-  # build the full kernel version to use in pathnames
-  . ./.config
-  ### next line is only needed for rc kernels
-  #_kernver="2.6.25${CONFIG_LOCALVERSION}"
-  _kernver="${_basekernel}${CONFIG_LOCALVERSION}"
+#  cp ../logo_linux_mono.pbm drivers/video/logo/
+#  cp ../logo_linux_vga16.ppm drivers/video/logo
+  # get kernel version  
+  make prepare
+  _kernver="$(make kernelrelease)"
   # load configuration
   yes "" | make config
   # build!
@@ -71,89 +69,88 @@ build() {
   #return 1
   ####################
   make bzImage modules || return 1
-  mkdir -p $startdir/pkg/{lib/modules,boot}
-  make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
-  cp System.map $startdir/pkg/boot/System.map26
-  cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26
+  mkdir -p ${pkgdir}/{lib/modules,boot}
+  make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1
+  cp System.map ${pkgdir}/boot/System.map26
+  cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26
   install -D -m644 Makefile \
-    $startdir/pkg/usr/src/linux-${_kernver}/Makefile
+    ${pkgdir}/usr/src/linux-${_kernver}/Makefile
   install -D -m644 kernel/Makefile \
-    $startdir/pkg/usr/src/linux-${_kernver}/kernel/Makefile
+    ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
   install -D -m644 .config \
-    $startdir/pkg/usr/src/linux-${_kernver}/.config
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include
+    ${pkgdir}/usr/src/linux-${_kernver}/.config
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
 
   for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound video; do
-    cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/
+    cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
   done
 
   # copy files necessary for later builds, like nvidia and vmware
-  cp Module.symvers $startdir/pkg/usr/src/linux-${_kernver}
-  cp -a scripts $startdir/pkg/usr/src/linux-${_kernver}
+  cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
+  cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
   # fix permissions on scripts dir
-  chmod og-w -R $startdir/pkg/usr/src/linux-${_kernver}/scripts
-  #mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
+  chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
+  #mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
 
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
 
-  cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
+  cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
   if [ "$CARCH" = "i686" ]; then
-    cp arch/$KARCH/Makefile_32.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
+    cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
   fi
-  cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
+  cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
 
   # add headers for lirc package
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video
-  cp drivers/media/video/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/
+  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 usbvideo zc0301; do
-   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
-   cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
+   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 dm headers
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
-  cp drivers/md/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
+  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 $startdir/pkg/usr/src/linux-${_kernver}/include/linux
-  cp include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
+  cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
   # add CLUSTERIP file for iptables
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/ipv4/netfilter/
   # add wireless headers
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/
-  cp net/mac80211/*.h $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/
+  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 $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
-  cp drivers/media/dvb/dvb-core/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
+  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/
   # add dvb headers for external modules
   # in reference to:
   # http://bugs.archlinux.org/task/11194
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/
-  cp include/config/dvb/*.h $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/
+  mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+  cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
   # add xfs and shmem for aufs building
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs
-  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/mm
-  cp fs/xfs/xfs_sb.h $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
+  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
   # add vmlinux
-  cp vmlinux $startdir/pkg/usr/src/linux-${_kernver}
+  cp vmlinux ${pkgdir}/usr/src/linux-${_kernver}
   # copy in Kconfig files
   for i in `find . -name "Kconfig*"`; do 
-    mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
-    cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
+    mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
+    cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
   done
 
-  cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
+  cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
 
-  chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}
-  find $startdir/pkg/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
-  cd $startdir/pkg/lib/modules/${_kernver} && \
+  chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
+  find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
+  cd ${pkgdir}/lib/modules/${_kernver} && \
     (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)
   # install fallback mkinitcpio.conf file and preset file for kernel
-  install -m644 -D $startdir/src/${pkgname}.preset $startdir/pkg/etc/mkinitcpio.d/${pkgname}.preset || return 1
+  install -m644 -D ${srcdir}/${pkgname}.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1
   # set correct depmod command for install
   sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install
   echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver
   # remove unneeded architectures
-  rm -rf $startdir/pkg/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+  rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
 }
-
diff --git a/abs/core-testing/kernel26/config b/abs/core-testing/kernel26/config
index e885de7..79fdab8 100644
--- a/abs/core-testing/kernel26/config
+++ b/abs/core-testing/kernel26/config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.26
-# Mon Jul 21 19:06:23 2008
+# Linux kernel version: 2.6.27
+# Mon Dec  8 21:43:19 2008
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -67,7 +67,8 @@ CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
-# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_TASKSTATS=y
 CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
@@ -77,18 +78,8 @@ CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=19
 # CONFIG_CGROUPS is not set
-# CONFIG_CGROUP_DEBUG is not set
-# CONFIG_CGROUP_NS is not set
-# CONFIG_CGROUP_DEVICE is not set
-# CONFIG_CPUSETS is not set
-# CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is not set
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 # CONFIG_GROUP_SCHED is not set
-# CONFIG_FAIR_GROUP_SCHED is not set
-# CONFIG_RT_GROUP_SCHED is not set
-# CONFIG_USER_SCHED is not set
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_CGROUP_CPUACCT is not set
-# CONFIG_RESOURCE_COUNTERS is not set
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_SYSFS_DEPRECATED_V2=y
 CONFIG_RELAY=y
@@ -104,7 +95,6 @@ CONFIG_SYSCTL=y
 # CONFIG_EMBEDDED is not set
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL_CHECK=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
 CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -132,10 +122,16 @@ CONFIG_PROFILING=y
 CONFIG_OPROFILE=m
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_ARCH_TRACEHOOK is not set
 # CONFIG_HAVE_DMA_ATTRS is not set
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+# CONFIG_HAVE_CLK is not set
 CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 # CONFIG_TINY_SHMEM is not set
@@ -153,6 +149,7 @@ CONFIG_LBD=y
 CONFIG_BLK_DEV_IO_TRACE=y
 CONFIG_LSF=y
 CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
@@ -177,25 +174,25 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_SMP=y
+CONFIG_X86_FIND_SMP_CONFIG=y
+CONFIG_X86_MPPARSE=y
 CONFIG_X86_PC=y
 # CONFIG_X86_ELAN is not set
 # CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
 # CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_X86_RDC321X is not set
 # CONFIG_X86_VSMP is not set
+# CONFIG_X86_RDC321X is not set
 CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN_SAVE_RESTORE=y
 CONFIG_VMI=y
 # CONFIG_KVM_CLOCK is not set
 # CONFIG_KVM_GUEST is not set
 CONFIG_LGUEST_GUEST=y
 CONFIG_PARAVIRT=y
 # CONFIG_PARAVIRT_CLOCK is not set
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
 # CONFIG_M586 is not set
@@ -232,7 +229,6 @@ CONFIG_X86_WP_WORKS_OK=y
 CONFIG_X86_INVLPG=y
 CONFIG_X86_BSWAP=y
 CONFIG_X86_POPAD_OK=y
-CONFIG_X86_GOOD_APIC=y
 CONFIG_X86_INTEL_USERCOPY=y
 CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_X86_TSC=y
@@ -285,9 +281,12 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
 # CONFIG_HIGHPTE is not set
+CONFIG_X86_RESERVE_LOW_64K=y
 # CONFIG_MATH_EMULATION is not set
 CONFIG_MTRR=y
+# CONFIG_MTRR_SANITIZER is not set
 CONFIG_X86_PAT=y
 CONFIG_EFI=y
 # CONFIG_IRQBALANCE is not set
@@ -300,6 +299,7 @@ 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=0x100000
 # CONFIG_RELOCATABLE is not set
 CONFIG_PHYSICAL_ALIGN=0x100000
@@ -342,6 +342,7 @@ CONFIG_ACPI_CUSTOM_DSDT_INITRD=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_EC=y
+CONFIG_ACPI_PCI_SLOT=m
 CONFIG_ACPI_POWER=y
 CONFIG_ACPI_SYSTEM=y
 CONFIG_X86_PM_TIMER=y
@@ -423,7 +424,7 @@ CONFIG_HOTPLUG_PCI_PCIE=m
 CONFIG_PCIEAER=y
 # CONFIG_PCIEASPM is not set
 CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
+CONFIG_PCI_MSI=y
 CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_HT_IRQ=y
@@ -474,10 +475,6 @@ CONFIG_HOTPLUG_PCI_SHPC=m
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_AOUT=m
 CONFIG_BINFMT_MISC=y
-
-#
-# Networking
-#
 CONFIG_NET=y
 
 #
@@ -491,6 +488,7 @@ 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
@@ -692,6 +690,7 @@ CONFIG_IP_NF_TARGET_ECN=m
 CONFIG_IP_NF_TARGET_TTL=m
 CONFIG_IP_NF_TARGET_CLUSTERIP=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
@@ -716,6 +715,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
 
 #
 # Bridge: Netfilter Configuration
@@ -728,6 +728,7 @@ 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
@@ -756,8 +757,10 @@ CONFIG_ATM_LANE=m
 CONFIG_ATM_MPOA=m
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
 # CONFIG_DECNET is not set
 CONFIG_LLC=m
 CONFIG_LLC2=m
@@ -886,7 +889,7 @@ 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=m
+# CONFIG_BT_CMTP is not set
 CONFIG_BT_HIDP=m
 
 #
@@ -894,6 +897,7 @@ CONFIG_BT_HIDP=m
 #
 CONFIG_BT_HCIUSB=m
 CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIBTUSB is not set
 CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
@@ -918,28 +922,19 @@ CONFIG_FIB_RULES=y
 CONFIG_CFG80211=m
 CONFIG_NL80211=y
 CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_MAC80211=m
 
 #
 # Rate control algorithm selection
 #
+CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
-
-#
-# Selecting 'y' for an algorithm will
-#
-
-#
-# build the algorithm into mac80211.
-#
 CONFIG_MAC80211_RC_DEFAULT="pid"
-CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
-# CONFIG_MAC80211_DEBUG is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
 CONFIG_IEEE80211=m
 # CONFIG_IEEE80211_DEBUG is not set
 CONFIG_IEEE80211_CRYPT_WEP=m
@@ -962,7 +957,9 @@ CONFIG_NET_9P_VIRTIO=m
 CONFIG_UEVENT_HELPER_PATH=""
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
+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
@@ -1082,6 +1079,7 @@ 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_MISC_DEVICES=y
 # CONFIG_IBM_ASM is not set
 CONFIG_PHANTOM=m
@@ -1092,8 +1090,11 @@ CONFIG_TIFM_7XX1=m
 CONFIG_ACER_WMI=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
 CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
 CONFIG_THINKPAD_ACPI=m
@@ -1104,6 +1105,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 CONFIG_INTEL_MENLOW=m
 CONFIG_EEEPC_LAPTOP=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
 CONFIG_HAVE_IDE=y
 CONFIG_IDE=m
 CONFIG_BLK_DEV_IDE=m
@@ -1111,6 +1113,8 @@ CONFIG_BLK_DEV_IDE=m
 #
 # Please see Documentation/ide/ide.txt for help/info on IDE drives
 #
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
 CONFIG_BLK_DEV_IDEDISK=m
 CONFIG_IDEDISK_MULTI_MODE=y
@@ -1150,12 +1154,9 @@ CONFIG_BLK_DEV_AMD74XX=m
 CONFIG_BLK_DEV_ATIIXP=m
 CONFIG_BLK_DEV_CMD64X=m
 CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CY82C693=m
 CONFIG_BLK_DEV_CS5520=m
 CONFIG_BLK_DEV_CS5530=m
 CONFIG_BLK_DEV_CS5535=m
-CONFIG_BLK_DEV_HPT34X=m
-# CONFIG_HPT34X_AUTODMA is not set
 CONFIG_BLK_DEV_HPT366=m
 CONFIG_BLK_DEV_JMICRON=m
 CONFIG_BLK_DEV_SC1200=m
@@ -1187,8 +1188,6 @@ CONFIG_BLK_DEV_HT6560B=m
 CONFIG_BLK_DEV_QD65XX=m
 CONFIG_BLK_DEV_UMC8672=m
 CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_BLK_DEV_HD_ONLY is not set
-# CONFIG_BLK_DEV_HD is not set
 
 #
 # SCSI device support
@@ -1325,6 +1324,11 @@ 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_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_ACPI=y
@@ -1411,9 +1415,6 @@ CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_MIRROR=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_DM_MULTIPATH_RDAC=m
-CONFIG_DM_MULTIPATH_HP=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_FUSION=y
@@ -1455,7 +1456,6 @@ CONFIG_I2O_PROC=m
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_MAC_EMUMOUSEBTN=y
 CONFIG_NETDEVICES=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
 CONFIG_IFB=m
 CONFIG_DUMMY=m
 CONFIG_BONDING=m
@@ -1465,7 +1465,22 @@ CONFIG_TUN=m
 CONFIG_VETH=m
 CONFIG_NET_SB1000=m
 # CONFIG_ARCNET is not set
-# CONFIG_PHYLIB is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
 CONFIG_NET_ETHERNET=y
 CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
@@ -1523,9 +1538,7 @@ CONFIG_SEEQ8005=m
 CONFIG_NET_PCI=y
 CONFIG_PCNET32=m
 CONFIG_AMD8111_ETH=m
-# CONFIG_AMD8111E_NAPI is not set
 CONFIG_ADAPTEC_STARFIRE=m
-# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
 CONFIG_AC3200=m
 CONFIG_APRICOT=m
 CONFIG_B44=m
@@ -1554,7 +1567,6 @@ CONFIG_SUNDANCE=m
 CONFIG_TLAN=m
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
-# CONFIG_VIA_RHINE_NAPI is not set
 CONFIG_SC92031=m
 CONFIG_NET_POCKET=y
 CONFIG_ATP=m
@@ -1565,17 +1577,15 @@ CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
 CONFIG_DL2K=m
 CONFIG_E1000=m
-# CONFIG_E1000_NAPI is not set
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
 CONFIG_E1000E=m
-CONFIG_E1000E_ENABLED=y
 CONFIG_IP1000=m
 CONFIG_IGB=m
+# CONFIG_IGB_LRO is not set
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
 CONFIG_R8169=m
-# CONFIG_R8169_NAPI is not set
 # CONFIG_R8169_VLAN is not set
 CONFIG_SIS190=m
 CONFIG_SKGE=m
@@ -1587,16 +1597,14 @@ CONFIG_TIGON3=m
 CONFIG_BNX2=m
 CONFIG_QLA3XXX=m
 CONFIG_ATL1=m
+CONFIG_ATL1E=m
 CONFIG_NETDEV_10000=y
 CONFIG_CHELSIO_T1=m
 CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T1_NAPI=y
 CONFIG_CHELSIO_T3=m
 CONFIG_IXGBE=m
 CONFIG_IXGB=m
-# CONFIG_IXGB_NAPI is not set
 CONFIG_S2IO=m
-# CONFIG_S2IO_NAPI is not set
 CONFIG_MYRI10GE=m
 CONFIG_NETXEN_NIC=m
 CONFIG_NIU=m
@@ -1645,22 +1653,25 @@ CONFIG_USB_NET_RNDIS_WLAN=m
 CONFIG_RTL8180=m
 CONFIG_RTL8187=m
 CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
 CONFIG_P54_COMMON=m
 CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K=m
 CONFIG_IWLWIFI=m
 CONFIG_IWLCORE=m
 CONFIG_IWLWIFI_LEDS=y
 CONFIG_IWLWIFI_RFKILL=y
-CONFIG_IWL4965=m
-CONFIG_IWL4965_HT=y
-CONFIG_IWL4965_LEDS=y
-CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y
-CONFIG_IWL4965_SENSITIVITY=y
 # CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLAGN=m
+CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
+CONFIG_IWLAGN_LEDS=y
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
 CONFIG_IWL3945=m
+CONFIG_IWL3945_RFKILL=y
 CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
 CONFIG_IWL3945_LEDS=y
 # CONFIG_IWL3945_DEBUG is not set
@@ -1737,6 +1748,7 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -1770,8 +1782,10 @@ 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_MAYBE=m
-# CONFIG_ATM_FORE200E_PCA 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_FDDI is not set
@@ -1800,7 +1814,16 @@ CONFIG_NETPOLL=y
 # CONFIG_NETPOLL_TRAP is not set
 CONFIG_NET_POLL_CONTROLLER=y
 CONFIG_VIRTIO_NET=m
-CONFIG_ISDN=m
+CONFIG_ISDN=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
 CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
@@ -1903,7 +1926,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_GIGASET_UNDOCREQ=y
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
-# CONFIG_CAPI_TRACE is not set
+CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
 CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
@@ -1969,6 +1992,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
 # CONFIG_MOUSE_PS2_TOUCHKIT is not set
 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
@@ -2015,7 +2039,9 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GUNZE=m
 CONFIG_TOUCHSCREEN_ELO=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
@@ -2036,6 +2062,7 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
 CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
 CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
 CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
@@ -2069,6 +2096,7 @@ 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
@@ -2131,7 +2159,7 @@ CONFIG_HW_RANDOM_INTEL=m
 CONFIG_HW_RANDOM_AMD=m
 CONFIG_HW_RANDOM_GEODE=m
 CONFIG_HW_RANDOM_VIA=m
-# CONFIG_HW_RANDOM_VIRTIO is not set
+CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_NVRAM=m
 CONFIG_DTLK=m
 CONFIG_R3964=m
@@ -2148,7 +2176,7 @@ CONFIG_IPWIRELESS=m
 CONFIG_MWAVE=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
-# CONFIG_CS5535_GPIO is not set
+CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_HPET is not set
 CONFIG_HANGCHECK_TIMER=m
@@ -2162,12 +2190,17 @@ CONFIG_DEVPORT=y
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
 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
@@ -2175,35 +2208,52 @@ CONFIG_I2C_AMD756=m
 CONFIG_I2C_AMD756_S4882=m
 CONFIG_I2C_AMD8111=m
 CONFIG_I2C_I801=m
-CONFIG_I2C_I810=m
+CONFIG_I2C_ISCH=m
 CONFIG_I2C_PIIX4=m
 CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_PROSAVAGE=m
-CONFIG_I2C_SAVAGE4=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_SCx200_ACB=m
+CONFIG_I2C_NFORCE2_S4985=m
 CONFIG_I2C_SIS5595=m
 CONFIG_I2C_SIS630=m
 CONFIG_I2C_SIS96X=m
-CONFIG_I2C_TAOS_EVM=m
-# CONFIG_I2C_STUB is not set
-CONFIG_I2C_TINY_USB=m
 CONFIG_I2C_VIA=m
 CONFIG_I2C_VIAPRO=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
 CONFIG_I2C_VOODOO3=m
+
+#
+# Other I2C/SMBus bus drivers
+#
 CONFIG_I2C_PCA_ISA=m
 CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
 
 #
 # Miscellaneous I2C Chip support
 #
 CONFIG_DS1682=m
+CONFIG_AT24=m
 CONFIG_SENSORS_EEPROM=m
 CONFIG_SENSORS_PCF8574=m
 CONFIG_PCF8575=m
+CONFIG_SENSORS_PCA9539=m
 CONFIG_SENSORS_PCF8591=m
 CONFIG_SENSORS_MAX6875=m
 CONFIG_SENSORS_TSL2550=m
@@ -2228,6 +2278,8 @@ CONFIG_SPI_LM70_LLP=m
 CONFIG_SPI_AT25=m
 CONFIG_SPI_SPIDEV=m
 CONFIG_SPI_TLE62X0=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+# CONFIG_GPIOLIB is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2255,7 +2307,9 @@ CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
 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
@@ -2320,7 +2374,60 @@ CONFIG_SENSORS_APPLESMC=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
 CONFIG_THERMAL=y
 CONFIG_THERMAL_HWMON=y
-# CONFIG_WATCHDOG is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=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_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_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
+CONFIG_WDT_501=y
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501_PCI=y
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
 
 #
 # Sonics Silicon Backplane
@@ -2341,8 +2448,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
 #
 # Multifunction device drivers
 #
+# CONFIG_MFD_CORE is not set
 CONFIG_MFD_SM501=m
 # CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
 
 #
 # Multimedia devices
@@ -2381,20 +2490,22 @@ 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_VIDEO_V4L2=m
 CONFIG_VIDEO_V4L1=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_IR_I2C=m
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_VIDEO_TUNER=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Encoders/decoders and other helper chips
@@ -2475,11 +2586,11 @@ CONFIG_VIDEO_SAA5246A=m
 CONFIG_VIDEO_SAA5249=m
 CONFIG_TUNER_3036=m
 CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=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_DC30=m
 CONFIG_VIDEO_ZORAN_LML33=m
 CONFIG_VIDEO_ZORAN_LML33R10=m
 CONFIG_VIDEO_ZORAN_AVS6EYES=m
@@ -2504,6 +2615,8 @@ CONFIG_VIDEO_CX18=m
 CONFIG_VIDEO_CAFE_CCIC=m
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
 CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
 CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -2529,9 +2642,12 @@ CONFIG_USB_PWC=m
 # CONFIG_USB_PWC_DEBUG is not set
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
 CONFIG_SOC_CAMERA=m
 CONFIG_SOC_CAMERA_MT9M001=m
 CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_VIDEO_SH_MOBILE_CEU=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_CADET=m
 CONFIG_RADIO_RTRACK=m
@@ -2589,6 +2705,8 @@ 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_ANYSEE=m
 CONFIG_DVB_TTUSB_BUDGET=m
 CONFIG_DVB_TTUSB_DEC=m
 CONFIG_DVB_CINERGYT2=m
@@ -2598,6 +2716,8 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
 CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
 CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
 CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=20
+CONFIG_DVB_SIANO_SMS1XXX=m
+CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y
 
 #
 # Supported FlexCopII (B2C2) Adapters
@@ -2648,6 +2768,7 @@ CONFIG_DVB_SP8870=m
 CONFIG_DVB_SP887X=m
 CONFIG_DVB_CX22700=m
 CONFIG_DVB_CX22702=m
+# CONFIG_DVB_DRX397XD is not set
 CONFIG_DVB_L64781=m
 CONFIG_DVB_TDA1004X=m
 CONFIG_DVB_NXT6000=m
@@ -2802,16 +2923,21 @@ CONFIG_FB_TRIDENT=m
 CONFIG_FB_TRIDENT_ACCEL=y
 # 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_SM501 is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
 CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CORGI=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
 
 #
 # Display device support
@@ -2848,15 +2974,7 @@ CONFIG_LOGO=y
 CONFIG_LOGO_LINUX_MONO=y
 CONFIG_LOGO_LINUX_VGA16=y
 CONFIG_LOGO_LINUX_CLUT224=y
-
-#
-# Sound
-#
 CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
@@ -2875,16 +2993,13 @@ CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
-
-#
-# Generic devices
-#
-# CONFIG_SND_PCSP is not set
 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=m
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
@@ -2892,15 +3007,14 @@ 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_AD1848_LIB=m
 CONFIG_SND_CS4231_LIB=m
 CONFIG_SND_SB_COMMON=m
 CONFIG_SND_SB8_DSP=m
 CONFIG_SND_SB16_DSP=m
-
-#
-# ISA devices
-#
+CONFIG_SND_ISA=y
 CONFIG_SND_ADLIB=m
 CONFIG_SND_AD1816A=m
 CONFIG_SND_AD1848=m
@@ -2915,7 +3029,6 @@ CONFIG_SND_ES968=m
 CONFIG_SND_ES1688=m
 CONFIG_SND_ES18XX=m
 CONFIG_SND_SC6000=m
-CONFIG_SND_GUS_SYNTH=m
 CONFIG_SND_GUSCLASSIC=m
 CONFIG_SND_GUSEXTREME=m
 CONFIG_SND_GUSMAX=m
@@ -2930,15 +3043,11 @@ CONFIG_SND_SB8=m
 CONFIG_SND_SB16=m
 CONFIG_SND_SBAWE=m
 CONFIG_SND_SB16_CSP=y
-CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y
 CONFIG_SND_SGALAXY=m
 CONFIG_SND_SSCAPE=m
 CONFIG_SND_WAVEFRONT=m
 CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
-
-#
-# PCI devices
-#
+CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
 CONFIG_SND_ALS4000=m
@@ -3003,9 +3112,7 @@ CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
-CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
 CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
@@ -3021,44 +3128,16 @@ CONFIG_SND_VIA82XX_MODEM=m
 CONFIG_SND_VIRTUOSO=m
 CONFIG_SND_VX222=m
 CONFIG_SND_YMFPCI=m
-CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-
-#
-# SPI devices
-#
-
-#
-# USB devices
-#
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
-
-#
-# PCMCIA devices
-#
+CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
-
-#
-# System on Chip audio support
-#
 CONFIG_SND_SOC=m
-
-#
-# ALSA SoC audio for Freescale SOCs
-#
-
-#
-# SoC Audio for the Texas Instruments OMAP
-#
-
-#
-# Open Sound System
-#
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
@@ -3101,6 +3180,7 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_MON=y
 
 #
 # USB Host Controller Drivers
@@ -3111,7 +3191,6 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
 CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_ISP116X_HCD=m
 CONFIG_USB_ISP1760_HCD=m
-# CONFIG_USB_ISP1760_PCI is not set
 CONFIG_USB_OHCI_HCD=m
 # CONFIG_USB_OHCI_HCD_SSB is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -3122,6 +3201,7 @@ CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
 CONFIG_USB_SL811_CS=m
 CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
 
 #
 # USB Device Class drivers
@@ -3158,7 +3238,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y
 #
 CONFIG_USB_MDC800=m
 CONFIG_USB_MICROTEK=m
-CONFIG_USB_MON=y
 
 #
 # USB port drivers
@@ -3168,7 +3247,6 @@ CONFIG_USB_SERIAL=m
 CONFIG_USB_EZUSB=y
 CONFIG_USB_SERIAL_GENERIC=y
 CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_AIRPRIME=m
 CONFIG_USB_SERIAL_ARK3116=m
 CONFIG_USB_SERIAL_BELKIN=m
 CONFIG_USB_SERIAL_CH341=m
@@ -3228,7 +3306,6 @@ CONFIG_USB_SERIAL_OMNINET=m
 CONFIG_USB_EMI62=m
 CONFIG_USB_EMI26=m
 CONFIG_USB_ADUTUX=m
-CONFIG_USB_AUERSWALD=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
@@ -3265,7 +3342,7 @@ CONFIG_USB_GADGET_SELECTED=y
 # CONFIG_USB_GADGET_FSL_USB2 is not set
 CONFIG_USB_GADGET_NET2280=y
 CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_PXA25X is not set
 # CONFIG_USB_GADGET_M66592 is not set
 # CONFIG_USB_GADGET_PXA27X is not set
 # CONFIG_USB_GADGET_GOKU is not set
@@ -3284,6 +3361,7 @@ CONFIG_USB_FILE_STORAGE=m
 CONFIG_USB_G_SERIAL=m
 CONFIG_USB_MIDI_GADGET=m
 CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
@@ -3300,9 +3378,11 @@ CONFIG_SDIO_UART=m
 # MMC/SD Host Controller Drivers
 #
 CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3323,7 +3403,9 @@ CONFIG_LEDS_CLASS=m
 #
 # LED drivers
 #
+CONFIG_LEDS_PCA9532=m
 CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
 
 #
 # LED Triggers
@@ -3333,7 +3415,8 @@ CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_IDE_DISK=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
 # CONFIG_INFINIBAND is not set
 CONFIG_EDAC=y
 
@@ -3351,6 +3434,7 @@ CONFIG_EDAC_I3000=m
 CONFIG_EDAC_I82860=m
 CONFIG_EDAC_R82600=m
 CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
 CONFIG_RTC_LIB=m
 CONFIG_RTC_CLASS=m
 
@@ -3383,6 +3467,8 @@ CONFIG_RTC_DRV_FM3130=m
 #
 # SPI RTC drivers
 #
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
 CONFIG_RTC_DRV_MAX6902=m
 CONFIG_RTC_DRV_R9701=m
 CONFIG_RTC_DRV_RS5C348=m
@@ -3414,6 +3500,7 @@ CONFIG_DMA_ENGINE=y
 # DMA Clients
 #
 CONFIG_NET_DMA=y
+# CONFIG_DMATEST is not set
 CONFIG_DCA=m
 CONFIG_AUXDISPLAY=y
 CONFIG_KS0108=m
@@ -3423,6 +3510,8 @@ 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_SMX=m
 
 #
@@ -3430,6 +3519,7 @@ CONFIG_UIO_SMX=m
 #
 CONFIG_EDD=m
 # CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
 CONFIG_EFI_VARS=m
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
@@ -3475,11 +3565,11 @@ CONFIG_XFS_POSIX_ACL=y
 CONFIG_XFS_RT=y
 # CONFIG_XFS_DEBUG is not set
 CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_NOLOCK=m
 CONFIG_GFS2_FS_LOCKING_DLM=m
 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_DNOTIFY=y
@@ -3566,6 +3656,7 @@ CONFIG_SQUASHFS=m
 CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
@@ -3590,7 +3681,6 @@ CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BIND34=y
 CONFIG_RPCSEC_GSS_KRB5=m
 CONFIG_RPCSEC_GSS_SPKM3=m
 CONFIG_SMB_FS=m
@@ -3599,6 +3689,7 @@ CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
@@ -3613,7 +3704,6 @@ CONFIG_NCPFS_SMALLDOS=y
 CONFIG_NCPFS_NLS=y
 # CONFIG_NCPFS_EXTRAS is not set
 CONFIG_CODA_FS=m
-# CONFIG_CODA_FS_OLD_API is not set
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
 CONFIG_9P_FS=m
@@ -3678,7 +3768,7 @@ CONFIG_NLS_ISO8859_14=m
 CONFIG_NLS_ISO8859_15=m
 CONFIG_NLS_KOI8_R=m
 CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
+CONFIG_NLS_UTF8=m
 CONFIG_DLM=m
 # CONFIG_DLM_DEBUG is not set
 
@@ -3697,6 +3787,8 @@ CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
 CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_SCHEDSTATS is not set
 CONFIG_TIMER_STATS=y
@@ -3719,6 +3811,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_VM is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_FRAME_POINTER is not set
@@ -3727,22 +3820,32 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_HAVE_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+# CONFIG_FTRACE is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
-# CONFIG_NONPROMISC_DEVMEM is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_DEBUG_RODATA is not set
 # CONFIG_DEBUG_NX_TEST is not set
 # CONFIG_4KSTACKS is not set
-CONFIG_X86_FIND_SMP_CONFIG=y
-CONFIG_X86_MPPARSE=y
 CONFIG_DOUBLEFAULT=y
+# CONFIG_MMIOTRACE is not set
 CONFIG_IO_DELAY_TYPE_0X80=0
 CONFIG_IO_DELAY_TYPE_0XED=1
 CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -3754,6 +3857,7 @@ CONFIG_IO_DELAY_0X80=y
 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
 
 #
 # Security options
@@ -3763,7 +3867,6 @@ CONFIG_KEYS=y
 CONFIG_SECURITY=y
 CONFIG_SECURITY_NETWORK=y
 # CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_CAPABILITIES=y
 CONFIG_SECURITY_FILE_CAPABILITIES=y
 CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
 # CONFIG_SECURITY_SMACK is not set
@@ -3778,8 +3881,8 @@ CONFIG_CRYPTO=y
 #
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_NULL=m
@@ -3797,7 +3900,7 @@ CONFIG_CRYPTO_SEQIV=m
 #
 # Block modes
 #
-CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CBC=m
 CONFIG_CRYPTO_CTR=m
 CONFIG_CRYPTO_CTS=m
 CONFIG_CRYPTO_ECB=m
@@ -3808,7 +3911,7 @@ CONFIG_CRYPTO_XTS=m
 #
 # Hash modes
 #
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HMAC=m
 CONFIG_CRYPTO_XCBC=m
 
 #
@@ -3816,8 +3919,12 @@ CONFIG_CRYPTO_XCBC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
+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
@@ -3835,7 +3942,7 @@ CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_DES=m
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_KHAZAD=m
 CONFIG_CRYPTO_SALSA20=m
@@ -3878,6 +3985,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
diff --git a/abs/core-testing/kernel26/config.x86_64 b/abs/core-testing/kernel26/config.x86_64
index 9c7a16a..f8e491e 100644
--- a/abs/core-testing/kernel26/config.x86_64
+++ b/abs/core-testing/kernel26/config.x86_64
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.26
-# Sun Aug 10 13:51:28 2008
+# Linux kernel version: 2.6.27
+# Mon Dec  8 22:37:16 2008
 #
 CONFIG_64BIT=y
 # CONFIG_X86_32 is not set
@@ -67,7 +67,8 @@ CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
 CONFIG_POSIX_MQUEUE=y
-# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_TASKSTATS=y
 CONFIG_TASK_DELAY_ACCT=y
 CONFIG_TASK_XACCT=y
@@ -94,7 +95,6 @@ CONFIG_SYSCTL=y
 # CONFIG_EMBEDDED is not set
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL_CHECK=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
 CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -122,10 +122,16 @@ CONFIG_PROFILING=y
 CONFIG_OPROFILE=m
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_ARCH_TRACEHOOK is not set
 # CONFIG_HAVE_DMA_ATTRS is not set
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+# CONFIG_HAVE_CLK is not set
 CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 # CONFIG_TINY_SHMEM is not set
@@ -141,6 +147,7 @@ CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_BLK_DEV_IO_TRACE=y
 CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
 CONFIG_BLOCK_COMPAT=y
 
 #
@@ -166,24 +173,22 @@ CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_SMP=y
+CONFIG_X86_FIND_SMP_CONFIG=y
+CONFIG_X86_MPPARSE=y
 CONFIG_X86_PC=y
 # CONFIG_X86_ELAN is not set
 # CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
 # CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_X86_RDC321X is not set
 # CONFIG_X86_VSMP is not set
 CONFIG_PARAVIRT_GUEST=y
+# CONFIG_XEN is not set
+CONFIG_XEN_SAVE_RESTORE=y
 # CONFIG_KVM_CLOCK is not set
 # CONFIG_KVM_GUEST is not set
 CONFIG_PARAVIRT=y
 # CONFIG_PARAVIRT_CLOCK is not set
-CONFIG_MEMTEST_BOOTPARAM=y
-CONFIG_MEMTEST_BOOTPARAM_VALUE=0
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
 # CONFIG_M586 is not set
@@ -215,8 +220,9 @@ CONFIG_X86_L1_CACHE_BYTES=128
 CONFIG_X86_INTERNODE_CACHE_BYTES=128
 CONFIG_X86_CMPXCHG=y
 CONFIG_X86_L1_CACHE_SHIFT=7
-CONFIG_X86_GOOD_APIC=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
@@ -226,6 +232,7 @@ CONFIG_DMI=y
 CONFIG_GART_IOMMU=y
 CONFIG_CALGARY_IOMMU=y
 CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+# CONFIG_AMD_IOMMU is not set
 CONFIG_SWIOTLB=y
 CONFIG_IOMMU_HELPER=y
 CONFIG_NR_CPUS=16
@@ -269,7 +276,10 @@ CONFIG_RESOURCES_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_X86_RESERVE_LOW_64K=y
 CONFIG_MTRR=y
+# CONFIG_MTRR_SANITIZER is not set
 CONFIG_X86_PAT=y
 CONFIG_EFI=y
 CONFIG_SECCOMP=y
@@ -324,6 +334,7 @@ CONFIG_ACPI_CUSTOM_DSDT_INITRD=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_EC=y
+CONFIG_ACPI_PCI_SLOT=m
 CONFIG_ACPI_POWER=y
 CONFIG_ACPI_SYSTEM=y
 CONFIG_X86_PM_TIMER=y
@@ -374,12 +385,13 @@ CONFIG_PCI=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_DOMAINS=y
+# CONFIG_DMAR is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_HOTPLUG_PCI_PCIE=m
 CONFIG_PCIEAER=y
 # CONFIG_PCIEASPM is not set
 CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
+CONFIG_PCI_MSI=y
 CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_HT_IRQ=y
@@ -424,10 +436,6 @@ CONFIG_IA32_AOUT=m
 CONFIG_COMPAT=y
 CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
 CONFIG_SYSVIPC_COMPAT=y
-
-#
-# Networking
-#
 CONFIG_NET=y
 
 #
@@ -441,6 +449,7 @@ 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
@@ -642,6 +651,7 @@ CONFIG_IP_NF_TARGET_ECN=m
 CONFIG_IP_NF_TARGET_TTL=m
 CONFIG_IP_NF_TARGET_CLUSTERIP=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
@@ -666,6 +676,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_TARGET_HL=m
 CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
 
 #
 # Bridge: Netfilter Configuration
@@ -678,6 +689,7 @@ 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
@@ -706,8 +718,10 @@ CONFIG_ATM_LANE=m
 CONFIG_ATM_MPOA=m
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
 # CONFIG_DECNET is not set
 CONFIG_LLC=m
 CONFIG_LLC2=m
@@ -835,7 +849,7 @@ 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=m
+# CONFIG_BT_CMTP is not set
 CONFIG_BT_HIDP=m
 
 #
@@ -843,6 +857,7 @@ CONFIG_BT_HIDP=m
 #
 CONFIG_BT_HCIUSB=m
 CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIBTUSB is not set
 CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
@@ -867,28 +882,19 @@ CONFIG_FIB_RULES=y
 CONFIG_CFG80211=m
 CONFIG_NL80211=y
 CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_MAC80211=m
 
 #
 # Rate control algorithm selection
 #
+CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
-
-#
-# Selecting 'y' for an algorithm will
-#
-
-#
-# build the algorithm into mac80211.
-#
 CONFIG_MAC80211_RC_DEFAULT="pid"
-CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
-# CONFIG_MAC80211_DEBUG is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
 CONFIG_IEEE80211=m
 # CONFIG_IEEE80211_DEBUG is not set
 CONFIG_IEEE80211_CRYPT_WEP=m
@@ -910,7 +916,9 @@ CONFIG_NET_9P=m
 CONFIG_UEVENT_HELPER_PATH=""
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
+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
@@ -1026,6 +1034,7 @@ CONFIG_CDROM_PKTCDVD=m
 CONFIG_CDROM_PKTCDVD_BUFFERS=8
 # CONFIG_CDROM_PKTCDVD_WCACHE is not set
 CONFIG_ATA_OVER_ETH=m
+# CONFIG_BLK_DEV_HD is not set
 CONFIG_MISC_DEVICES=y
 # CONFIG_IBM_ASM is not set
 CONFIG_PHANTOM=m
@@ -1036,7 +1045,10 @@ CONFIG_TIFM_7XX1=m
 CONFIG_ACER_WMI=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
 CONFIG_THINKPAD_ACPI=m
@@ -1047,6 +1059,10 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
 CONFIG_INTEL_MENLOW=m
 CONFIG_EEEPC_LAPTOP=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_SGI_XP=m
+CONFIG_HP_ILO=m
+CONFIG_SGI_GRU=m
+# CONFIG_SGI_GRU_DEBUG is not set
 CONFIG_HAVE_IDE=y
 CONFIG_IDE=m
 CONFIG_BLK_DEV_IDE=m
@@ -1054,6 +1070,8 @@ CONFIG_BLK_DEV_IDE=m
 #
 # Please see Documentation/ide/ide.txt for help/info on IDE drives
 #
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
 # CONFIG_BLK_DEV_IDE_SATA is not set
 CONFIG_BLK_DEV_IDEDISK=m
 CONFIG_IDEDISK_MULTI_MODE=y
@@ -1093,11 +1111,8 @@ CONFIG_BLK_DEV_AMD74XX=m
 CONFIG_BLK_DEV_ATIIXP=m
 CONFIG_BLK_DEV_CMD64X=m
 CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CY82C693=m
 CONFIG_BLK_DEV_CS5520=m
 CONFIG_BLK_DEV_CS5530=m
-CONFIG_BLK_DEV_HPT34X=m
-# CONFIG_HPT34X_AUTODMA is not set
 CONFIG_BLK_DEV_HPT366=m
 CONFIG_BLK_DEV_JMICRON=m
 CONFIG_BLK_DEV_SC1200=m
@@ -1115,8 +1130,6 @@ CONFIG_BLK_DEV_TRM290=m
 CONFIG_BLK_DEV_VIA82CXXX=m
 CONFIG_BLK_DEV_TC86C001=m
 CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_BLK_DEV_HD_ONLY is not set
-# CONFIG_BLK_DEV_HD is not set
 
 #
 # SCSI device support
@@ -1231,6 +1244,11 @@ CONFIG_SCSI_LOWLEVEL_PCMCIA=y
 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_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_ACPI=y
@@ -1311,9 +1329,6 @@ CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_MIRROR=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_EMC=m
-CONFIG_DM_MULTIPATH_RDAC=m
-CONFIG_DM_MULTIPATH_HP=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_FUSION=y
@@ -1356,7 +1371,6 @@ CONFIG_I2O_PROC=m
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_MAC_EMUMOUSEBTN=y
 CONFIG_NETDEVICES=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
 CONFIG_IFB=m
 CONFIG_DUMMY=m
 CONFIG_BONDING=m
@@ -1366,7 +1380,22 @@ CONFIG_TUN=m
 CONFIG_VETH=m
 CONFIG_NET_SB1000=m
 # CONFIG_ARCNET is not set
-# CONFIG_PHYLIB is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
 CONFIG_NET_ETHERNET=y
 CONFIG_MII=m
 CONFIG_HAPPYMEAL=m
@@ -1396,9 +1425,7 @@ CONFIG_HP100=m
 CONFIG_NET_PCI=y
 CONFIG_PCNET32=m
 CONFIG_AMD8111_ETH=m
-# CONFIG_AMD8111E_NAPI is not set
 CONFIG_ADAPTEC_STARFIRE=m
-# CONFIG_ADAPTEC_STARFIRE_NAPI is not set
 CONFIG_B44=m
 CONFIG_B44_PCI_AUTOSELECT=y
 CONFIG_B44_PCICORE_AUTOSELECT=y
@@ -1421,9 +1448,9 @@ CONFIG_SIS900=m
 CONFIG_EPIC100=m
 CONFIG_SUNDANCE=m
 # CONFIG_SUNDANCE_MMIO is not set
+# CONFIG_TLAN is not set
 CONFIG_VIA_RHINE=m
 # CONFIG_VIA_RHINE_MMIO is not set
-# CONFIG_VIA_RHINE_NAPI is not set
 CONFIG_SC92031=m
 CONFIG_NET_POCKET=y
 CONFIG_ATP=m
@@ -1434,17 +1461,15 @@ CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
 CONFIG_DL2K=m
 CONFIG_E1000=m
-# CONFIG_E1000_NAPI is not set
 # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
 CONFIG_E1000E=m
-CONFIG_E1000E_ENABLED=y
 CONFIG_IP1000=m
 CONFIG_IGB=m
+# CONFIG_IGB_LRO is not set
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
 CONFIG_R8169=m
-# CONFIG_R8169_NAPI is not set
 # CONFIG_R8169_VLAN is not set
 CONFIG_SIS190=m
 CONFIG_SKGE=m
@@ -1456,16 +1481,14 @@ CONFIG_TIGON3=m
 CONFIG_BNX2=m
 CONFIG_QLA3XXX=m
 CONFIG_ATL1=m
+CONFIG_ATL1E=m
 CONFIG_NETDEV_10000=y
 CONFIG_CHELSIO_T1=m
 CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T1_NAPI=y
 CONFIG_CHELSIO_T3=m
 CONFIG_IXGBE=m
 CONFIG_IXGB=m
-# CONFIG_IXGB_NAPI is not set
 CONFIG_S2IO=m
-# CONFIG_S2IO_NAPI is not set
 CONFIG_MYRI10GE=m
 CONFIG_NETXEN_NIC=m
 CONFIG_NIU=m
@@ -1514,22 +1537,25 @@ CONFIG_USB_NET_RNDIS_WLAN=m
 CONFIG_RTL8180=m
 CONFIG_RTL8187=m
 CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
 CONFIG_P54_COMMON=m
 CONFIG_P54_USB=m
 CONFIG_P54_PCI=m
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K=m
 CONFIG_IWLWIFI=m
 CONFIG_IWLCORE=m
 CONFIG_IWLWIFI_LEDS=y
 CONFIG_IWLWIFI_RFKILL=y
-CONFIG_IWL4965=m
-CONFIG_IWL4965_HT=y
-CONFIG_IWL4965_LEDS=y
-CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y
-CONFIG_IWL4965_SENSITIVITY=y
 # CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLAGN=m
+CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
+CONFIG_IWLAGN_LEDS=y
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
 CONFIG_IWL3945=m
+CONFIG_IWL3945_RFKILL=y
 CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
 CONFIG_IWL3945_LEDS=y
 # CONFIG_IWL3945_DEBUG is not set
@@ -1606,6 +1632,7 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
 CONFIG_NET_PCMCIA=y
 CONFIG_PCMCIA_3C589=m
 CONFIG_PCMCIA_3C574=m
@@ -1634,8 +1661,12 @@ CONFIG_ATM_AMBASSADOR=m
 # CONFIG_ATM_AMBASSADOR_DEBUG is not set
 CONFIG_ATM_HORIZON=m
 # CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_FORE200E_MAYBE=m
-# CONFIG_ATM_FORE200E_PCA 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_FDDI is not set
@@ -1663,7 +1694,16 @@ CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
 # CONFIG_NETPOLL_TRAP is not set
 CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_ISDN=m
+CONFIG_ISDN=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
 CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
@@ -1752,7 +1792,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_GIGASET_UNDOCREQ=y
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
-# CONFIG_CAPI_TRACE is not set
+CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
 CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
@@ -1816,6 +1856,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=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_INPUT_JOYSTICK=y
 CONFIG_JOYSTICK_ANALOG=m
@@ -1858,6 +1899,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GUNZE=m
 CONFIG_TOUCHSCREEN_ELO=m
 CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
 CONFIG_TOUCHSCREEN_MK712=m
 CONFIG_TOUCHSCREEN_PENMOUNT=m
 CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
@@ -1879,6 +1921,7 @@ CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
 CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
 CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
 CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_APANEL=m
@@ -1911,6 +1954,7 @@ 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
@@ -1995,12 +2039,17 @@ CONFIG_DEVPORT=y
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
 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
@@ -2008,33 +2057,50 @@ CONFIG_I2C_AMD756=m
 CONFIG_I2C_AMD756_S4882=m
 CONFIG_I2C_AMD8111=m
 CONFIG_I2C_I801=m
-CONFIG_I2C_I810=m
+CONFIG_I2C_ISCH=m
 CONFIG_I2C_PIIX4=m
 CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PARPORT=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_PROSAVAGE=m
-CONFIG_I2C_SAVAGE4=m
-CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_NFORCE2_S4985=m
 CONFIG_I2C_SIS5595=m
 CONFIG_I2C_SIS630=m
 CONFIG_I2C_SIS96X=m
-CONFIG_I2C_TAOS_EVM=m
-# CONFIG_I2C_STUB is not set
-CONFIG_I2C_TINY_USB=m
 CONFIG_I2C_VIA=m
 CONFIG_I2C_VIAPRO=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
 CONFIG_I2C_VOODOO3=m
+
+#
+# Other I2C/SMBus bus drivers
+#
 CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
 
 #
 # Miscellaneous I2C Chip support
 #
 CONFIG_DS1682=m
+CONFIG_AT24=m
 CONFIG_SENSORS_EEPROM=m
 CONFIG_SENSORS_PCF8574=m
 CONFIG_PCF8575=m
+CONFIG_SENSORS_PCA9539=m
 CONFIG_SENSORS_PCF8591=m
 CONFIG_SENSORS_MAX6875=m
 CONFIG_SENSORS_TSL2550=m
@@ -2059,6 +2125,8 @@ CONFIG_SPI_LM70_LLP=m
 CONFIG_SPI_AT25=m
 CONFIG_SPI_SPIDEV=m
 CONFIG_SPI_TLE62X0=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+# CONFIG_GPIOLIB is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2085,7 +2153,9 @@ CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
 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
@@ -2150,7 +2220,51 @@ CONFIG_SENSORS_APPLESMC=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
 CONFIG_THERMAL=y
 CONFIG_THERMAL_HWMON=y
-# CONFIG_WATCHDOG is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=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_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501_PCI=y
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
 
 #
 # Sonics Silicon Backplane
@@ -2171,8 +2285,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
 #
 # Multifunction device drivers
 #
+# CONFIG_MFD_CORE is not set
 CONFIG_MFD_SM501=m
 # CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
 
 #
 # Multimedia devices
@@ -2193,7 +2309,7 @@ CONFIG_VIDEO_MEDIA=m
 #
 CONFIG_VIDEO_SAA7146=m
 CONFIG_VIDEO_SAA7146_VV=m
-# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_ATTACH=y
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
@@ -2211,20 +2327,22 @@ 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_VIDEO_V4L2=m
 CONFIG_VIDEO_V4L1=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_IR_I2C=m
 CONFIG_VIDEO_IR=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_VIDEO_TUNER=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Encoders/decoders and other helper chips
@@ -2304,11 +2422,11 @@ CONFIG_VIDEO_SAA5246A=m
 CONFIG_VIDEO_SAA5249=m
 CONFIG_TUNER_3036=m
 CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN_ZR36060=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_DC30=m
 CONFIG_VIDEO_ZORAN_LML33=m
 CONFIG_VIDEO_ZORAN_LML33R10=m
 CONFIG_VIDEO_ZORAN_AVS6EYES=m
@@ -2334,6 +2452,7 @@ CONFIG_VIDEO_CAFE_CCIC=m
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
 CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
 CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -2359,9 +2478,12 @@ CONFIG_USB_PWC=m
 # CONFIG_USB_PWC_DEBUG is not set
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
 CONFIG_SOC_CAMERA=m
 CONFIG_SOC_CAMERA_MT9M001=m
 CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_VIDEO_SH_MOBILE_CEU=m
 CONFIG_RADIO_ADAPTERS=y
 CONFIG_RADIO_GEMTEK_PCI=m
 CONFIG_RADIO_MAXIRADIO=m
@@ -2407,6 +2529,8 @@ 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_ANYSEE=m
 CONFIG_DVB_TTUSB_BUDGET=m
 CONFIG_DVB_TTUSB_DEC=m
 CONFIG_DVB_CINERGYT2=m
@@ -2416,6 +2540,8 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
 CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
 CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
 CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=20
+CONFIG_DVB_SIANO_SMS1XXX=m
+CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y
 
 #
 # Supported FlexCopII (B2C2) Adapters
@@ -2466,6 +2592,7 @@ CONFIG_DVB_SP8870=m
 CONFIG_DVB_SP887X=m
 CONFIG_DVB_CX22700=m
 CONFIG_DVB_CX22702=m
+# CONFIG_DVB_DRX397XD is not set
 CONFIG_DVB_L64781=m
 CONFIG_DVB_TDA1004X=m
 CONFIG_DVB_NXT6000=m
@@ -2611,16 +2738,21 @@ CONFIG_FB_TRIDENT=m
 CONFIG_FB_TRIDENT_ACCEL=y
 # 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_SM501 is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
 CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CORGI=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
 
 #
 # Display device support
@@ -2656,15 +2788,7 @@ CONFIG_LOGO=y
 CONFIG_LOGO_LINUX_MONO=y
 CONFIG_LOGO_LINUX_VGA16=y
 CONFIG_LOGO_LINUX_CLUT224=y
-
-#
-# Sound
-#
 CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
@@ -2683,15 +2807,12 @@ CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
-
-#
-# Generic devices
-#
-# CONFIG_SND_PCSP is not set
 CONFIG_SND_MPU401_UART=m
 CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_PCSP=m
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
@@ -2699,12 +2820,11 @@ 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
-
-#
-# PCI devices
-#
+CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
 CONFIG_SND_ALS4000=m
@@ -2768,9 +2888,7 @@ CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
-CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
 CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
@@ -2785,44 +2903,16 @@ CONFIG_SND_VIA82XX_MODEM=m
 CONFIG_SND_VIRTUOSO=m
 CONFIG_SND_VX222=m
 CONFIG_SND_YMFPCI=m
-CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-
-#
-# SPI devices
-#
-
-#
-# USB devices
-#
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
-
-#
-# PCMCIA devices
-#
+CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
-
-#
-# System on Chip audio support
-#
 CONFIG_SND_SOC=m
-
-#
-# ALSA SoC audio for Freescale SOCs
-#
-
-#
-# SoC Audio for the Texas Instruments OMAP
-#
-
-#
-# Open Sound System
-#
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
@@ -2865,6 +2955,7 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_MON=y
 
 #
 # USB Host Controller Drivers
@@ -2875,7 +2966,6 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
 CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_ISP116X_HCD=m
 CONFIG_USB_ISP1760_HCD=m
-# CONFIG_USB_ISP1760_PCI is not set
 CONFIG_USB_OHCI_HCD=m
 # CONFIG_USB_OHCI_HCD_SSB is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -2886,6 +2976,7 @@ CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
 CONFIG_USB_SL811_CS=m
 CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
 
 #
 # USB Device Class drivers
@@ -2922,7 +3013,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y
 #
 CONFIG_USB_MDC800=m
 CONFIG_USB_MICROTEK=m
-CONFIG_USB_MON=y
 
 #
 # USB port drivers
@@ -2932,7 +3022,6 @@ CONFIG_USB_SERIAL=m
 CONFIG_USB_EZUSB=y
 CONFIG_USB_SERIAL_GENERIC=y
 CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_AIRPRIME=m
 CONFIG_USB_SERIAL_ARK3116=m
 CONFIG_USB_SERIAL_BELKIN=m
 CONFIG_USB_SERIAL_CH341=m
@@ -2992,7 +3081,6 @@ CONFIG_USB_SERIAL_OMNINET=m
 CONFIG_USB_EMI62=m
 CONFIG_USB_EMI26=m
 CONFIG_USB_ADUTUX=m
-CONFIG_USB_AUERSWALD=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
@@ -3029,7 +3117,7 @@ CONFIG_USB_GADGET_SELECTED=y
 # CONFIG_USB_GADGET_FSL_USB2 is not set
 CONFIG_USB_GADGET_NET2280=y
 CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_PXA25X is not set
 # CONFIG_USB_GADGET_M66592 is not set
 # CONFIG_USB_GADGET_PXA27X is not set
 # CONFIG_USB_GADGET_GOKU is not set
@@ -3048,6 +3136,7 @@ CONFIG_USB_FILE_STORAGE=m
 CONFIG_USB_G_SERIAL=m
 CONFIG_USB_MIDI_GADGET=m
 CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
@@ -3064,10 +3153,12 @@ CONFIG_SDIO_UART=m
 # MMC/SD Host Controller Drivers
 #
 CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3088,7 +3179,9 @@ CONFIG_LEDS_CLASS=m
 #
 # LED drivers
 #
+CONFIG_LEDS_PCA9532=m
 CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
 
 #
 # LED Triggers
@@ -3098,7 +3191,8 @@ CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_IDE_DISK=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
 # CONFIG_INFINIBAND is not set
 CONFIG_EDAC=y
 
@@ -3111,6 +3205,7 @@ CONFIG_EDAC_E752X=m
 CONFIG_EDAC_I82975X=m
 CONFIG_EDAC_I3000=m
 CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
 CONFIG_RTC_LIB=m
 CONFIG_RTC_CLASS=m
 
@@ -3143,6 +3238,8 @@ CONFIG_RTC_DRV_FM3130=m
 #
 # SPI RTC drivers
 #
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
 CONFIG_RTC_DRV_MAX6902=m
 CONFIG_RTC_DRV_R9701=m
 CONFIG_RTC_DRV_RS5C348=m
@@ -3174,6 +3271,7 @@ CONFIG_DMA_ENGINE=y
 # DMA Clients
 #
 CONFIG_NET_DMA=y
+# CONFIG_DMATEST is not set
 CONFIG_DCA=m
 CONFIG_AUXDISPLAY=y
 CONFIG_KS0108=m
@@ -3183,6 +3281,8 @@ 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_SMX=m
 
 #
@@ -3190,6 +3290,7 @@ CONFIG_UIO_SMX=m
 #
 CONFIG_EDD=m
 # CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
 CONFIG_EFI_VARS=m
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
@@ -3235,11 +3336,11 @@ CONFIG_XFS_POSIX_ACL=y
 CONFIG_XFS_RT=y
 # CONFIG_XFS_DEBUG is not set
 CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_NOLOCK=m
 CONFIG_GFS2_FS_LOCKING_DLM=m
 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_DNOTIFY=y
@@ -3326,6 +3427,7 @@ CONFIG_SQUASHFS=m
 CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
@@ -3350,7 +3452,6 @@ CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BIND34=y
 CONFIG_RPCSEC_GSS_KRB5=m
 CONFIG_RPCSEC_GSS_SPKM3=m
 CONFIG_SMB_FS=m
@@ -3359,6 +3460,7 @@ CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
 CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
@@ -3373,7 +3475,6 @@ CONFIG_NCPFS_SMALLDOS=y
 CONFIG_NCPFS_NLS=y
 # CONFIG_NCPFS_EXTRAS is not set
 CONFIG_CODA_FS=m
-# CONFIG_CODA_FS_OLD_API is not set
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
 CONFIG_9P_FS=m
@@ -3457,6 +3558,8 @@ CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
 CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_SCHEDSTATS is not set
 CONFIG_TIMER_STATS=y
@@ -3478,6 +3581,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_VM is not set
 # CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_FRAME_POINTER is not set
@@ -3486,11 +3590,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_HAVE_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+# CONFIG_FTRACE is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
-# CONFIG_NONPROMISC_DEVMEM is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 # CONFIG_DEBUG_STACK_USAGE is not set
@@ -3500,8 +3614,8 @@ CONFIG_EARLY_PRINTK=y
 # CONFIG_DEBUG_RODATA is not set
 # CONFIG_DIRECT_GBPAGES is not set
 # CONFIG_DEBUG_NX_TEST is not set
-CONFIG_X86_MPPARSE=y
 # CONFIG_IOMMU_DEBUG is not set
+# CONFIG_MMIOTRACE is not set
 CONFIG_IO_DELAY_TYPE_0X80=0
 CONFIG_IO_DELAY_TYPE_0XED=1
 CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -3513,6 +3627,7 @@ CONFIG_IO_DELAY_0X80=y
 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
 
 #
 # Security options
@@ -3522,7 +3637,6 @@ CONFIG_KEYS=y
 CONFIG_SECURITY=y
 CONFIG_SECURITY_NETWORK=y
 # CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_CAPABILITIES=y
 CONFIG_SECURITY_FILE_CAPABILITIES=y
 CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
 # CONFIG_SECURITY_SMACK is not set
@@ -3537,8 +3651,8 @@ CONFIG_CRYPTO=y
 #
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_GF128MUL=m
 CONFIG_CRYPTO_NULL=m
@@ -3556,7 +3670,7 @@ CONFIG_CRYPTO_SEQIV=m
 #
 # Block modes
 #
-CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CBC=m
 CONFIG_CRYPTO_CTR=m
 CONFIG_CRYPTO_CTS=m
 CONFIG_CRYPTO_ECB=m
@@ -3567,7 +3681,7 @@ CONFIG_CRYPTO_XTS=m
 #
 # Hash modes
 #
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HMAC=m
 CONFIG_CRYPTO_XCBC=m
 
 #
@@ -3575,8 +3689,12 @@ CONFIG_CRYPTO_XCBC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
+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
@@ -3594,7 +3712,7 @@ CONFIG_CRYPTO_BLOWFISH=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_DES=m
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_KHAZAD=m
 CONFIG_CRYPTO_SALSA20=m
@@ -3630,6 +3748,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
diff --git a/abs/core-testing/kernel26/kernel26.install b/abs/core-testing/kernel26/kernel26.install
index 514bcb7..f04dba4 100644
--- a/abs/core-testing/kernel26/kernel26.install
+++ b/abs/core-testing/kernel26/kernel26.install
@@ -1,12 +1,12 @@
 # arg 1:  the new package version
 # arg 2:  the old package version
 
-KERNEL_VERSION=2.6.26-ARCH
+KERNEL_VERSION=2.6.27-ARCH
 
 post_install () {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1
+  depmod $KERNEL_VERSION 
   # generate init ramdisks
   echo ">>> MKINITCPIO SETUP"
   echo ">>> ----------------"
@@ -81,7 +81,7 @@ post_upgrade() {
   fi
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  depmod -v $KERNEL_VERSION > /dev/null 2>&1
+  depmod $KERNEL_VERSION
   echo ">>> MKINITCPIO SETUP"
   echo ">>> ----------------"
   if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
diff --git a/abs/core-testing/kernel26/logo_linux_mono.pbm b/abs/core-testing/kernel26/logo_linux_mono.pbm
index 6a5e007..7b1369c 100644
--- a/abs/core-testing/kernel26/logo_linux_mono.pbm
+++ b/abs/core-testing/kernel26/logo_linux_mono.pbm
@@ -1,883 +1,95 @@
-P3
+P1
+# CREATOR: GIMP PNM Filter Version 1.1
 80 80
-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 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 
-128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
-0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 
-0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 
-0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
-128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
-128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-
+1111111111111111111111111111111111000000000000111111111111111111111111
+1111111111111111111111111111111111111111100000010101000000111111111111
+1111111111111111111111111111111111111111111111111100011111111111110000
+1111111111111111111111111111111111111111111111111111111111000111111111
+1111111100011111111111111111111111111111111111111111111111111111111100
+1111111111111110111100111111111111111111111111111111111111111111111111
+1111111001111111111111111000110001111111111111111111111111111111111111
+1111111111111111000111111111111111001111110011111111111111111111111111
+1111111111111111111111111100111111111111111111111111001111111111111111
+1111111111111111111111111111111111110011111111111111111111111110011111
+1111111111111111111111111111111111111111111110011111111111111111111111
+1110011111111111111111111111111111111111111111111111111100111111111111
+1111111111111100111111111111111111111111111111111111111111111111100111
+1110111111111111011111100011111111111111111111111111111111111111111111
+1111110011100111111110000001111111001111111111111111111111111111111111
+1111111111111110011100000111110000000111111100111111111111111111111111
+1111111111111111111111111100100000001110000000001111111001111111111111
+1111111111111111111111111111111111100110000000111000000000111111001111
+1111111111111111111111111111111111111111111111001001000011100011010001
+1111100111111111111111111111111111111111111111111111111001100110000100
+0011100011111100111111111111111111111111111111111111111111111111110010
+0111000000001111000111111001111111111111111111111111111111111111111111
+1111110011000000000000000000111111001111111111111111111111111111111111
+1111111111111111001100000000000000000011111110011111111111111111111111
+1111111111111111111111111100110000000000000000001111110011111111111111
+1111111111111111111111111111111111110010000000000000000000111111100111
+1111111111111111111111111111111111111111111111001000000000000000000011
+1111100111111111111111111111111111111111111111111111110000110000000000
+0000000011111110011111111111111111111111111111111111111111111100000000
+0000000000000000001110001001111111111111111111111111111111111111111111
+1000000000000000000000000000011100110011111111111111111111111111111111
+1111111111000000000000000000000000000001111110011111111111111111111111
+1111111111111111111110000000000000000000000000000011111100111111111111
+1111111111111111111111111111110000000000000000000000000000000111110011
+1111111111111111111111111111111111111111100000000000000000000000000000
+0111111000111111111111111111111111111111111111111000000000000000000000
+0000000000011111110001111111111111111111111111111111111111100110000000
+0000000000000000000000111111110011111111111111111111111111111111111100
+1110000000000000000000000000000011111111000111111111111111111111111111
+1111111000111000000000000000000000000000000111111110011111111111111111
+1111111111111111001111110000000000000000000000000000011111111100111111
+1111111111111111111111111100011111000000000000000000000000000000111111
+1100011111111111111111111111111111110001111100000000000000000000000000
+0000111111111001111111111111111111111111111110010011111000000000000000
+0000000000000001111100110011111111111111111111111111111001100001000000
+0000000000000000001000000111001110011111111111111111111111111111100111
+0000000000000000000000000000110000000001111100111111111111111111111111
+1111001111111000000000000000000000000011000000111111110011111111111111
+1111111111111110011111111000000000000100000000011110101111111111001111
+1111111111111111111111110011111111111111111111110000111111111111111111
+1111001111111111111111111111111111100111111111111111111111100011111111
+1111111111111100111111111111111111111111111110011111111111111111111100
+0011111111111111111111100111111111111111111111111111111000111111111111
+1111111100000111111111111111111110011111111111111111111111111111110011
+1111111111111111100000011111111111111111111001111111111111111111111111
+1111110011111111111111111100000000111111111111111111100111111111111111
+1111111111111110011000111111111111000000000000111111111111111100011111
+1111111111111111111111111100100000000000000000000000000000000010000011
+1110011111111111111111111111111111100110000000000000000000000000000000
+0000000011111001111111111111111111111111111110011000000000000000000000
+0000000000000000000111100111111111111111111111111111100001000000000000
+0000000000000000000000000000111110011111111111111111111111111100000010
+0000000000000000000000000000000000000001111001111111111111111111111111
+1000000000000000000000000000000000000000000000001111100000000111111111
+1111111111000000000000000000000000000000000000000000000000000000000000
+0001111111111111111000000000000000000000000000000000000000000000000000
+0000000000000111111111111111000000000000000000000000000000000000000000
+0000000000000000000000011111111111000000000000000000000000000000000000
+0000000000000000000000000000000001111111110000000000000000000000000000
+0000000000000000000000000000000000000000000011111110000000000000000000
+0000000000000000000000000000000000000000000000000000001111111000000000
+0000000000000000000000000000000000000000000000000000000000000000001111
+0000000000000000000000000000000000000000000000000000000000000000000000
+0000000111100000000000000000000000000000000000000000000000000000000000
+0000000000000000000110000000000000000000000000000000000000000000000000
+0000000000000000000000000000011000000000000000000000000000000000000000
+0000000000001000000000000000000000000000000000000000000000000000000000
+0000000000000000000001100000000000000000000000001110000000000000000000
+0000000000000000000000000000011110000000000000000000000000111000000000
+0000000000000000000000000000000000000011111000000000000000000000000111
+1000000000000000000000000000000000000000000001111111100000000000000000
+0000001111000000000000000000000000000000001000000001011111111100000000
+0000000000000001111110000000000000000000000000000001111111111111111111
+1110000000000000000000011111110000000000000000000000000000000111111111
+1111111111110000000000000000000011111111110000000000000000000000000000
+1111111111111111111111100000000000000000111111111111101000000000000000
+0000000000010000000000000000000000000000000000001111111111111111111010
+0000000000000000000100000010101010101010100000000000000001111111111111
+1111111111111100000000000001000011111111111111111110001000000000011111
+1111111111111111111111111110100000000000111111111111111111111100000000
+0000011111111111111111111111111111111111100000000111111111111111111111
+111000000000011111111111111111
\ No newline at end of file
diff --git a/abs/core-testing/kernel26/logo_linux_vga16.ppm b/abs/core-testing/kernel26/logo_linux_vga16.ppm
index 51ffad6..8b2d1ea 100644
--- a/abs/core-testing/kernel26/logo_linux_vga16.ppm
+++ b/abs/core-testing/kernel26/logo_linux_vga16.ppm
@@ -5,8 +5,8 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 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 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -15,10 +15,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 255 255 255 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 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 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -26,10 +26,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 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 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 36 26 8 214 202 162 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -37,10 +37,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 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 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -48,10 +48,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 44 44 44 44 44 44 44 44 44 0 0 0 
+0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -59,10 +59,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 
-0 0 0 0 0 0 0 0 0 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 44 44 44 102 124 121 102 124 121 44 44 44 
+0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -70,10 +70,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 0 0 0 
+0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 255 255 255 85 85 85 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -81,10 +81,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 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 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -92,10 +92,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -103,10 +103,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -114,10 +114,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -125,10 +125,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 85 85 85 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -136,10 +136,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 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 170 170 170 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 0 0 0 85 85 85 170 170 170 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 
+102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -147,10 +147,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 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 
-85 85 85 170 170 170 170 170 170 170 170 170 255 255 255 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 85 85 85 170 170 170 
+0 0 0 0 0 0 255 255 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143 
+232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -158,10 +158,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 170 170 170 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 
-255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 255 255 255 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 255 255 255 
+0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232 
+232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -169,10 +169,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 170 170 170 170 170 170 0 0 0 
-85 85 85 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 
-255 255 255 170 170 170 0 0 0 0 0 0 85 85 85 85 85 85 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 255 255 255 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0 
+44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -180,10 +180,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 170 170 170 85 85 85 0 0 0 
-85 85 85 85 85 85 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 85 85 85 
-255 255 255 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 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 255 255 255 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44 
+102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -191,32 +191,32 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 170 170 170 85 85 85 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 
-255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 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 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0 
+0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 85 85 85 170 170 170 0 0 0 
-0 0 0 0 0 0 255 85 85 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 
-255 255 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 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 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 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0 
+0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47 
+226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 170 170 170 170 170 170 
-170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 
-255 255 85 255 255 85 170 85 0 170 85 0 85 85 85 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 255 255 255 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143 
+44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -224,10 +224,10 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 85 85 85 255 85 85 
-170 85 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 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 255 255 255 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
@@ -235,649 +235,649 @@ P3
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 170 85 0 170 85 0 
-170 85 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 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 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 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 170 85 0 170 85 0 170 85 0 
-170 85 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 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 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 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 170 85 0 170 85 0 170 85 0 
-170 85 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 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 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 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 170 85 0 170 85 0 
-170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 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 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47 
+223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 
+226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8 
+36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 170 170 170 85 85 85 85 85 85 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 85 0 
-170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 85 85 170 170 170 170 170 170 
-0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 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 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50 
+118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 
+36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 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 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 0 0 0 85 85 85 85 85 85 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 157 146 143 232 232 232 157 146 143 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143 
+118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162 
+102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 85 85 85 
-170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 170 170 170 170 170 170 
-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 85 0 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 
-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 254 254 254 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47 
+118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232 
+214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0 
+232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 170 170 170 
-170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 170 170 170 
-170 170 170 170 170 170 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 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 
-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 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232 
+157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 
+188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 
-85 85 85 170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 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 
-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 0 0 0 0 0 0 0 0 0 0 0 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 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232 
+232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 
+157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 170 170 170 
-85 85 85 170 170 170 85 85 85 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 
-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 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 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 44 44 44 232 232 232 102 124 121 232 232 232 
+102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162 
+232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 0 0 0 170 170 170 
-85 85 85 170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 
-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 
-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 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143 
+232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 170 170 170 
-170 170 170 85 85 85 170 170 170 85 85 85 170 170 170 170 170 170 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 
-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 170 170 170 170 170 170 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143 
+102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 
-170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 170 170 170 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 255 255 255 85 85 85 0 0 0 
+0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 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 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 255 255 255 0 0 0 
+0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 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 
-170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 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 255 255 255 255 255 255 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 170 170 170 170 170 170 
+0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 
+157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 0 0 0 0 0 0 0 0 0 
-85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 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 
-170 170 170 170 170 170 170 170 170 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 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 
+102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121 
+102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 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 170 170 170 170 170 170 
-85 85 85 85 85 85 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 0 0 0 0 0 0 0 0 0 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 
+232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143 
+102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 
-0 0 0 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 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 
-85 85 85 0 0 0 170 170 170 170 170 170 170 170 170 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 
-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 44 44 44 
+232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 
+44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 
-170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 85 85 85 85 85 85 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 85 85 85 
-0 0 0 0 0 0 170 170 170 255 255 255 170 170 170 170 170 170 255 255 255 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 
-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 102 124 121 
+157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44 
+157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121 
+44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8 
+0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 
-170 170 170 170 170 170 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 
-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 170 170 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170 
-85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-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 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121 
+0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121 
+102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 85 85 85 
-85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170 
-170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 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 85 85 85 
-0 0 0 0 0 0 85 85 85 170 170 170 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 
-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 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 
+102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254 
+254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44 
+0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 85 85 85 255 255 255 
-255 255 255 255 255 255 0 0 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 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254 
+254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-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 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-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 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 232 232 232 
+254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 44 44 44 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 102 124 121 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254 
+254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-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 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 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 85 85 85 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 
+214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 44 44 44 250 246 233 254 254 254 254 254 254 
+254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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 85 85 85 255 255 255 170 170 170 85 85 85 0 0 0 
+254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0 
 0 0 0 0 0 0 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 255 255 255 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 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-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 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 85 85 85 255 255 255 255 255 255 255 255 255 255 255 255 
-170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 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 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 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 
-170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232 
+157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 
+214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121 
+157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 255 255 255 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 255 255 255 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 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 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 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232 
+157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 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 85 255 255 85 
-170 85 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 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 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 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 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55 
+226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 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 255 255 85 255 255 85 255 255 85 
-255 255 85 170 85 0 170 85 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 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 170 170 170 
-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 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8 
+226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 
+232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 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 170 85 0 170 85 0 255 255 85 255 255 85 
-255 255 85 255 255 85 255 255 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 255 255 255 255 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 
-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 85 0 170 85 0 170 85 0 170 170 170 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 85 85 170 85 0 170 85 0 255 255 85 255 255 85 
-255 255 85 255 255 85 255 255 85 255 255 85 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 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 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 
-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 255 255 85 170 85 0 170 85 0 170 85 0 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 
-85 85 85 255 255 255 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 
-255 255 85 255 255 85 255 255 85 255 255 85 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 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 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 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 
-255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 255 255 85 
-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 85 85 85 170 170 170 170 170 170 255 255 255 
-170 170 170 255 85 85 170 85 0 170 85 0 170 85 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 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 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 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 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 170 170 170 255 255 255 170 170 170 255 255 85 255 255 85 170 85 0 
-170 85 0 170 85 0 170 85 0 170 85 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 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 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 85 0 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 0 
-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 85 85 85 255 255 255 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 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 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 170 170 170 170 170 170 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 0 
-255 85 85 255 255 255 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 85 170 85 0 170 85 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 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 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 
-255 255 255 255 255 255 255 255 255 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 85 0 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 0 
-170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 255 255 255 255 85 85 170 85 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 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 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 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 85 0 170 85 0 
-170 85 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 170 85 0 170 85 0 
-170 85 0 170 85 0 255 85 85 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 
-
-0 0 0 255 255 255 255 255 85 170 85 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 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 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 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 170 85 0 170 85 0 
-170 85 0 255 255 85 255 255 85 170 85 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 170 85 0 170 85 0 
-170 85 0 170 85 0 170 85 0 170 85 0 255 255 85 255 255 255 170 170 170 0 0 0 
-
-0 0 0 170 170 170 255 255 85 170 85 0 170 85 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 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 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 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 170 85 0 170 85 0 170 85 0 
-170 85 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 255 255 85 255 255 85 
-170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 255 85 85 255 255 255 0 0 0 
-
-0 0 0 170 170 170 170 170 170 170 85 0 170 85 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 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 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 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 170 85 0 170 85 0 170 85 0 
-170 85 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 255 255 85 255 255 85 
-255 255 85 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 170 170 170 0 0 0 
-
-0 0 0 170 170 170 170 170 170 170 85 0 170 85 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 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 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 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 170 85 0 170 85 0 170 85 0 
-170 85 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 255 255 85 255 255 85 
-255 255 85 255 255 85 170 85 0 170 85 0 255 255 85 255 255 255 0 0 0 0 0 0 
-
-0 0 0 170 170 170 255 255 85 170 85 0 170 85 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 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 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 
-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 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 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 255 255 85 
-255 255 85 170 85 0 170 85 0 255 85 85 255 255 255 0 0 0 0 0 0 0 0 0 
-
-0 0 0 170 170 170 255 255 85 170 85 0 170 85 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 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 
-255 255 85 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 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 0 0 0 0 0 0 0 0 0 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 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 255 255 85 
-170 85 0 170 85 0 255 85 85 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 
-
-0 0 0 255 255 255 255 255 85 170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 
-255 255 85 170 85 0 170 85 0 170 85 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 255 255 85 170 85 0 170 85 0 170 85 0 170 85 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 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 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 0 170 85 0 
-170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 
-
-0 0 0 255 255 255 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 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 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 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 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 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 170 85 0 170 85 0 170 85 0 170 85 0 170 85 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 255 255 255 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 85 0 170 85 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 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 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 
-170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 85 0 170 170 170 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 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47 
+223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 
+223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11 
+227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232 
+214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47 
+250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6 
+223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47 
+226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55 
+250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6 
+188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6 
+223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0 
+
+0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0 
+
+0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+
+36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0 
+0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 
+232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8 
+227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233 
+118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8 
+0 0 0 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 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 85 0 
-170 85 0 170 85 0 170 85 0 255 255 85 255 255 85 255 255 85 255 255 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 0 0 0 
+0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47 
+118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6 
+188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 85 0 170 85 0 
-170 85 0 170 85 0 170 85 0 170 85 0 170 170 170 255 255 255 85 85 85 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 255 255 255 255 255 255 170 170 170 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 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 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 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 85 0 170 85 0 170 85 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 44 44 44 102 124 121 157 146 143 
+232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8 
+44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232 
+232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50 
+188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6 
+118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 255 255 255 255 255 255 170 170 170 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 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 
-85 85 85 170 170 170 170 170 170 170 170 170 170 170 170 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 85 85 85 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 85 0 170 170 170 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 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232 
+214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 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 170 170 170 255 255 255 170 170 170 
-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 85 0 170 85 0 170 85 0 170 85 0 85 85 85 170 170 170 255 255 255 
-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 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47 
+118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50 
+157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 255 255 255 170 170 170 85 85 85 170 85 0 170 85 0 170 85 0 
-170 85 0 170 85 0 170 85 0 85 85 85 85 85 85 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 36 26 8 44 44 44 
+157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 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 85 85 85 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 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 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8 
+118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162 
+214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 0 0 0 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 170 170 170 85 85 85 85 85 85 
-85 85 85 85 85 85 85 85 85 170 170 170 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 36 26 8 
+0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 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 170 170 170 85 85 85 
-85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 255 255 255 85 85 85 
+0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47 
+36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 36 26 8 44 44 44 157 146 143 157 146 143 
+157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
-170 170 170 255 255 255 255 255 255 255 255 255 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 44 44 44 118 110 50 157 146 143 
+232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0 
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 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/abs/core-testing/lirc-utils/PKGBUILD b/abs/core-testing/lirc-utils/PKGBUILD
index b1f1f9a..a5e4fae 100644
--- a/abs/core-testing/lirc-utils/PKGBUILD
+++ b/abs/core-testing/lirc-utils/PKGBUILD
@@ -2,13 +2,13 @@
 # Maintainer: Paul Mattal <paul@archlinux.org>
 
 pkgname=lirc-utils
-pkgver=0.8.3
+pkgver=0.8.4
 pkgrel=1
 pkgdesc="Linux Infrared Remote Control utils"
 arch=(i686 x86_64)
 url="http://www.lirc.org/"
 license=('GPL')
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 depends=('alsa-lib' 'libusb' 'libx11' 'libsm')
 makedepends=('help2man')
 replaces=('lirc+pctv')
@@ -17,14 +17,14 @@ backup=('etc/lircd.conf' 'etc/lircmd.conf'\
 options=('!libtool' '!makeflags')
 source=(http://umn.dl.sf.net/sourceforge/lirc/lirc-$pkgver.tar.bz2 \
 	lircd lircmd lirc.logrotate lircd.conf.d kernel-2.6.26.patch)
-md5sums=('8e78eeded7b31e5ad02e328970437c0f' '909ad968afa10e4511e1da277bb23c3b'\
+md5sums=('8f3ba7eb57529992f3991d6981a3feb6' '909ad968afa10e4511e1da277bb23c3b'\
          '85f7fdac55e5256967241864049bf5e9' '3deb02604b37811d41816e9b4385fcc3'\
          '5b1f8c9cd788a39a6283f93302ce5c6e' '1753acd774f50b638e6173d364de53fd')
 
 build() {
 	# configure
 	cd $startdir/src/lirc-$pkgver || return 1
-	patch -Np1 -i ../kernel-2.6.26.patch || return 1
+#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
 
       # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
 	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am || return 1
diff --git a/abs/core-testing/lirc/PKGBUILD b/abs/core-testing/lirc/PKGBUILD
index 4548a46..b880096 100644
--- a/abs/core-testing/lirc/PKGBUILD
+++ b/abs/core-testing/lirc/PKGBUILD
@@ -2,14 +2,14 @@
 # Maintainer: Paul Mattal <paul@archlinux.org>
 
 pkgname=lirc
-pkgver=0.8.3
-pkgrel=3
+pkgver=0.8.4
+pkgrel=2
 _kernver=2.6.27-ARCH
 pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
 arch=(i686 x86_64)
 url="http://www.lirc.org/"
 license=('GPL')
-depends=('lirc-utils=0.8.3' 'kernel26>=2.6.27' 'kernel26<2.6.28')
+depends=('lirc-utils=0.8.4' 'kernel26>=2.6.27' 'kernel26<2.6.28')
 makedepends=('help2man')
 replaces=('lirc+pctv')
 options=('!makeflags')
@@ -21,8 +21,8 @@ source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.t
 build() {
 	# configure
 	cd $startdir/src/lirc-$pkgver || return 1
-	patch -Np1 -i ../kernel-2.6.26.patch || return 1
-	patch -Np1 -i ../kernel-2.6.27.patch || return 1
+#	patch -Np1 -i ../kernel-2.6.26.patch || return 1
+#	patch -Np1 -i ../kernel-2.6.27.patch || return 1
 
 	./configure --enable-sandboxed --prefix=/usr \
 		--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
@@ -49,6 +49,6 @@ build() {
 	sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
 		$startdir/lirc.install || return 1
 }
-md5sums=('8e78eeded7b31e5ad02e328970437c0f'
+md5sums=('8f3ba7eb57529992f3991d6981a3feb6'
          '1753acd774f50b638e6173d364de53fd'
          '6f151eb4e81fc7776a06c9063e6ad9a5')
diff --git a/abs/core-testing/madwifi/PKGBUILD b/abs/core-testing/madwifi/PKGBUILD
index da2ec7a..d14d5f1 100644
--- a/abs/core-testing/madwifi/PKGBUILD
+++ b/abs/core-testing/madwifi/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 7965 2008-08-05 10:52:26Z tpowa $
+# $Id: PKGBUILD 14765 2008-10-10 15:32:35Z thomas $
 # Originally by kleptophobiac <kleptophobiac@gmail.com>
 # Modified by James Rayner for the repositories <iphitus@gmail.com>
 
-_kernver=2.6.26-ARCH;
+_kernver=2.6.27-ARCH;
 
 pkgname=madwifi
 pkgver=0.9.4.3844
-pkgrel=1
+pkgrel=2
 pkgdesc="Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://madwifi.org"
-depends=('madwifi-utils' 'kernel26>=2.6.26-1' 'kernel26<2.6.27')
+depends=('madwifi-utils' 'kernel26>=2.6.27' 'kernel26<2.6.28')
 makedepends=('sharutils')
 install=madwifi-ng.install
 # subversion source: svn checkout http://svn.madwifi.org/madwifi/trunk madwifi
diff --git a/abs/core-testing/madwifi/madwifi-ng.install b/abs/core-testing/madwifi/madwifi-ng.install
index a4cac8b..2b02087 100644
--- a/abs/core-testing/madwifi/madwifi-ng.install
+++ b/abs/core-testing/madwifi/madwifi-ng.install
@@ -1,20 +1,20 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1		 
 }
 
 # arg 1:  the new package version
 # arg 2:  the old package version
 post_upgrade() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	 
   
 }
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION	 > /dev/null 2>&1	 
 }
 
diff --git a/abs/core-testing/ndiswrapper/PKGBUILD b/abs/core-testing/ndiswrapper/PKGBUILD
index 927dc8c..9e4a0f1 100644
--- a/abs/core-testing/ndiswrapper/PKGBUILD
+++ b/abs/core-testing/ndiswrapper/PKGBUILD
@@ -1,29 +1,35 @@
-#$Id: PKGBUILD 7906 2008-08-05 07:01:51Z tpowa $
+#$Id: PKGBUILD 18549 2008-11-07 09:00:55Z tpowa $
 #Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=ndiswrapper
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 pkgver=1.53
-pkgrel=1
+pkgrel=3
 pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel."
 license=('GPL')
 arch=(i686 x86_64)
 url="http://ndiswrapper.sourceforge.net"
 install="ndiswrapper.install"
-depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.26-1' 'kernel26<2.6.27')
-source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz)
+depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.27' 'kernel26<2.6.28')
+source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz
+        kernel-2.6.27.patch
+	ndiswrapper-CVE-2008-4395.patch)
+md5sums=('393c6e6ab0803963148e18538601cdec'
+         'cd09562c4afdbd20a0237a5e6d976b31'
+         'b35e548a0c9eb1395f6f7b434a258ddf')
 
 build()
 {
-  cd $startdir/src/ndiswrapper-$pkgver/driver
-  make KVERS=$_kernver 
-  make DESTDIR=$startdir/pkg KVERS=$_kernver install || return 1
-  rm $startdir/pkg/lib/modules/$_kernver/modules.* #wtf?
+  cd $srcdir/ndiswrapper-$pkgver/driver
+  patch -Np1 -i ../../kernel-2.6.27.patch || return 1
+  patch -Np3 -i ../../ndiswrapper-CVE-2008-4395.patch || return 1
+  make KVERS=$_kernver || return 1
+  make DESTDIR=$pkgdir KVERS=$_kernver install || return 1
+  rm $pkgdir/lib/modules/$_kernver/modules.* #wtf?
 
   sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
   # move it to correct kernel directory
-  mkdir -p $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper
-  mv $startdir/pkg/lib/modules/$_kernver/misc/* $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/
-  rm -r $startdir/pkg/lib/modules/$_kernver/misc/
+  mkdir -p $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper
+  mv $pkgdir/lib/modules/$_kernver/misc/* $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/
+  rm -r $pkgdir/lib/modules/$_kernver/misc/
 }
-md5sums=('393c6e6ab0803963148e18538601cdec')
diff --git a/abs/core-testing/ndiswrapper/kernel-2.6.27.patch b/abs/core-testing/ndiswrapper/kernel-2.6.27.patch
new file mode 100644
index 0000000..522dfe9
--- /dev/null
+++ b/abs/core-testing/ndiswrapper/kernel-2.6.27.patch
@@ -0,0 +1,116 @@
+diff -aur driver.old/iw_ndis.c driver/iw_ndis.c
+--- driver.old/iw_ndis.c	2008-08-04 21:10:16.000000000 +0200
++++ driver/iw_ndis.c	2008-08-04 21:30:12.000000000 +0200
+@@ -1015,7 +1015,7 @@
+ 	return 0;
+ }
+ 
+-static char *ndis_translate_scan(struct net_device *dev, char *event,
++static char *ndis_translate_scan(struct net_device *dev, struct iw_request_info *info, char *event,
+ 				 char *end_buf, void *item)
+ {
+ 	struct iw_event iwe;
+@@ -1034,7 +1034,7 @@
+ 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ 	iwe.len = IW_EV_ADDR_LEN;
+ 	memcpy(iwe.u.ap_addr.sa_data, bssid->mac, ETH_ALEN);
+-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_ADDR_LEN);
++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_ADDR_LEN);
+ 
+ 	/* add essid */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1044,13 +1044,13 @@
+ 		iwe.u.data.length = IW_ESSID_MAX_SIZE;
+ 	iwe.u.data.flags = 1;
+ 	iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
+-	event = iwe_stream_add_point(event, end_buf, &iwe, bssid->ssid.essid);
++	event = iwe_stream_add_point(info, event, end_buf, &iwe, bssid->ssid.essid);
+ 
+ 	/* add protocol name */
+ 	memset(&iwe, 0, sizeof(iwe));
+ 	iwe.cmd = SIOCGIWNAME;
+ 	strncpy(iwe.u.name, network_type_to_name(bssid->net_type), IFNAMSIZ);
+-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_CHAR_LEN);
++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_CHAR_LEN);
+ 
+ 	/* add mode */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1061,7 +1061,7 @@
+ 		iwe.u.mode = IW_MODE_INFRA;
+ 	else // if (bssid->mode == Ndis802_11AutoUnknown)
+ 		iwe.u.mode = IW_MODE_AUTO;
+-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_UINT_LEN);
++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_UINT_LEN);
+ 
+ 	/* add freq */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1076,7 +1076,7 @@
+ 	/* convert from kHz to Hz */
+ 	iwe.u.freq.e += 3;
+ 	iwe.len = IW_EV_FREQ_LEN;
+-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_FREQ_LEN);
++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_FREQ_LEN);
+ 
+ 	/* add qual */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1090,7 +1090,7 @@
+ 	iwe.u.qual.noise = WL_NOISE;
+ 	iwe.u.qual.qual  = i;
+ 	iwe.len = IW_EV_QUAL_LEN;
+-	event = iwe_stream_add_event(event, end_buf, &iwe, IW_EV_QUAL_LEN);
++	event = iwe_stream_add_event(info, event, end_buf, &iwe, IW_EV_QUAL_LEN);
+ 
+ 	/* add key info */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1101,7 +1101,7 @@
+ 		iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
+ 	iwe.u.data.length = 0;
+ 	iwe.len = IW_EV_POINT_LEN;
+-	event = iwe_stream_add_point(event, end_buf, &iwe, bssid->ssid.essid);
++	event = iwe_stream_add_point(info, event, end_buf, &iwe, bssid->ssid.essid);
+ 
+ 	/* add rate */
+ 	memset(&iwe, 0, sizeof(iwe));
+@@ -1115,7 +1115,7 @@
+ 		if (bssid->rates[i] & 0x7f) {
+ 			iwe.u.bitrate.value = ((bssid->rates[i] & 0x7f) *
+ 					       500000);
+-			current_val = iwe_stream_add_value(event, current_val,
++			current_val = iwe_stream_add_value(info, event, current_val,
+ 							   end_buf, &iwe,
+ 							   IW_EV_PARAM_LEN);
+ 		}
+@@ -1128,13 +1128,13 @@
+ 	iwe.cmd = IWEVCUSTOM;
+ 	sprintf(buf, "bcn_int=%d", bssid->config.beacon_period);
+ 	iwe.u.data.length = strlen(buf);
+-	event = iwe_stream_add_point(event, end_buf, &iwe, buf);
++	event = iwe_stream_add_point(info, event, end_buf, &iwe, buf);
+ 
+ 	memset(&iwe, 0, sizeof(iwe));
+ 	iwe.cmd = IWEVCUSTOM;
+ 	sprintf(buf, "atim=%u", bssid->config.atim_window);
+ 	iwe.u.data.length = strlen(buf);
+-	event = iwe_stream_add_point(event, end_buf, &iwe, buf);
++	event = iwe_stream_add_point(info, event, end_buf, &iwe, buf);
+ 
+ 	TRACE2("%d, %u", bssid->length, (unsigned int)sizeof(*bssid));
+ 	if (bssid->length > sizeof(*bssid)) {
+@@ -1155,7 +1155,7 @@
+ 				memset(&iwe, 0, sizeof(iwe));
+ 				iwe.cmd = IWEVGENIE;
+ 				iwe.u.data.length = ielen;
+-				event = iwe_stream_add_point(event, end_buf,
++				event = iwe_stream_add_point(info, event, end_buf,
+ 							     &iwe, iep);
+ 			}
+ 			iep += ielen;
+@@ -1236,7 +1236,7 @@
+ 	TRACE2("%d", bssid_list->num_items);
+ 	cur_item = &bssid_list->bssid[0];
+ 	for (i = 0; i < bssid_list->num_items; i++) {
+-		event = ndis_translate_scan(dev, event,
++		event = ndis_translate_scan(dev, info, event,
+ 					    extra + IW_SCAN_MAX_DATA, cur_item);
+ 		cur_item = (struct ndis_wlan_bssid *)((char *)cur_item +
+ 						      cur_item->length);    
diff --git a/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch b/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch
new file mode 100644
index 0000000..53682e0
--- /dev/null
+++ b/abs/core-testing/ndiswrapper/ndiswrapper-CVE-2008-4395.patch
@@ -0,0 +1,86 @@
+diff --git a/ubuntu/ndiswrapper/iw_ndis.c b/ubuntu/ndiswrapper/iw_ndis.c
+index b114ef6..01d3751 100644
+--- a/ubuntu/ndiswrapper/iw_ndis.c
++++ b/ubuntu/ndiswrapper/iw_ndis.c
+@@ -47,12 +47,7 @@ int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len)
+ 	req.length = ssid_len;
+ 	if (ssid_len)
+ 		memcpy(&req.essid, ssid, ssid_len);
+-	DBG_BLOCK(2) {
+-		char buf[NDIS_ESSID_MAX_SIZE+1];
+-		memcpy(buf, ssid, ssid_len);
+-		buf[ssid_len] = 0;
+-		TRACE2("ssid = '%s'", buf);
+-	}
++	TRACE2("ssid = '%.*s'", ssid_len, ssid);
+ 
+ 	res = mp_set(wnd, OID_802_11_SSID, &req, sizeof(req));
+ 	if (res) {
+@@ -125,7 +120,6 @@ static int iw_get_essid(struct net_device *dev, struct iw_request_info *info,
+ 		EXIT2(return -EOPNOTSUPP);
+ 	}
+ 	memcpy(extra, req.essid, req.length);
+-	extra[req.length] = 0;
+ 	if (req.length > 0)
+ 		wrqu->essid.flags  = 1;
+ 	else
+@@ -1000,7 +994,7 @@ static int iw_set_nick(struct net_device *dev, struct iw_request_info *info,
+ 
+ 	if (wrqu->data.length > IW_ESSID_MAX_SIZE || wrqu->data.length <= 0)
+ 		return -EINVAL;
+-	memset(wnd->nick, 0, sizeof(wnd->nick));
++	wnd->nick_len = wrqu->data.length;
+ 	memcpy(wnd->nick, extra, wrqu->data.length);
+ 	return 0;
+ }
+@@ -1010,7 +1004,7 @@ static int iw_get_nick(struct net_device *dev, struct iw_request_info *info,
+ {
+ 	struct ndis_device *wnd = netdev_priv(dev);
+ 
+-	wrqu->data.length = strlen(wnd->nick);
++	wrqu->data.length = wnd->nick_len;
+ 	memcpy(extra, wnd->nick, wrqu->data.length);
+ 	return 0;
+ }
+diff --git a/ubuntu/ndiswrapper/ndis.h b/ubuntu/ndiswrapper/ndis.h
+index 27ba99e..65d6b0b 100644
+--- a/ubuntu/ndiswrapper/ndis.h
++++ b/ubuntu/ndiswrapper/ndis.h
+@@ -878,6 +878,7 @@ struct ndis_device {
+ 	unsigned long scan_timestamp;
+ 	struct encr_info encr_info;
+ 	char nick[IW_ESSID_MAX_SIZE];
++	size_t nick_len;
+ 	struct ndis_essid essid;
+ 	struct auth_encr_capa capa;
+ 	enum ndis_infrastructure_mode infrastructure_mode;
+diff --git a/ubuntu/ndiswrapper/proc.c b/ubuntu/ndiswrapper/proc.c
+index fd5f433..6feff23 100644
+--- a/ubuntu/ndiswrapper/proc.c
++++ b/ubuntu/ndiswrapper/proc.c
+@@ -97,10 +97,8 @@ static int procfs_read_ndis_encr(char *page, char **start, off_t off,
+ 	p += sprintf(p, "\n");
+ 
+ 	res = mp_query(wnd, OID_802_11_SSID, &essid, sizeof(essid));
+-	if (!res) {
+-		essid.essid[essid.length] = '\0';
+-		p += sprintf(p, "essid=%s\n", essid.essid);
+-	}
++	if (!res)
++		p += sprintf(p, "essid=%.*s\n", essid.length, essid.essid);
+ 	res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &encr_status);
+ 	if (!res) {
+ 		typeof(&wnd->encr_info.keys[0]) tx_key;
+diff --git a/ubuntu/ndiswrapper/wrapndis.c b/ubuntu/ndiswrapper/wrapndis.c
+index f6e5d46..35ef1cd 100644
+--- a/ubuntu/ndiswrapper/wrapndis.c
++++ b/ubuntu/ndiswrapper/wrapndis.c
+@@ -2028,7 +2028,7 @@ static wstdcall NTSTATUS NdisAddDevice(struct driver_object *drv_obj,
+ 	wnd->attributes = 0;
+ 	wnd->dma_map_count = 0;
+ 	wnd->dma_map_addr = NULL;
+-	wnd->nick[0] = 0;
++	wnd->nick_len = 0;
+ 	init_timer(&wnd->hangcheck_timer);
+ 	wnd->scan_timestamp = 0;
+ 	init_timer(&wnd->iw_stats_timer);
diff --git a/abs/core-testing/ndiswrapper/ndiswrapper.install b/abs/core-testing/ndiswrapper/ndiswrapper.install
index 696f2d4..06bf5c9 100644
--- a/abs/core-testing/ndiswrapper/ndiswrapper.install
+++ b/abs/core-testing/ndiswrapper/ndiswrapper.install
@@ -2,7 +2,7 @@
 post_install()
 {
   ndiswrapper -m
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1 
 }
 
@@ -11,14 +11,14 @@ post_install()
 post_upgrade()
 {
   ndiswrapper -m
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the old package version
 post_remove()
 {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION > /dev/null 2>&1
 }
 
diff --git a/abs/core-testing/rt2500/PKGBUILD b/abs/core-testing/rt2500/PKGBUILD
index 67798b6..b0f442fa 100644
--- a/abs/core-testing/rt2500/PKGBUILD
+++ b/abs/core-testing/rt2500/PKGBUILD
@@ -1,27 +1,31 @@
-# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# $Id: PKGBUILD 14783 2008-10-10 15:36:02Z thomas $
 # Maintainer: James Rayner <iphitus@gmail.com>
 
 pkgname=rt2500
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 pkgver=1.1.0_B4
 _pkgver=1.1.0-b4
-pkgrel=24
+pkgrel=25
 pkgdesc="Drivers for rt2500 chipset wireless cards"
 url="http://rt2x00.serialmonkey.com/wiki/index.php/Main_Page"
 license=('GPL2')
-depends=('kernel26>=2.6.26-1' 'kernel26<2.6.27')
+depends=('kernel26>=2.6.27' 'kernel26<2.6.28')
 arch=('i686' 'x86_64')
 install=rt2500.install
 source=(http://downloads.sourceforge.net/sourceforge/rt2400/rt2500-${_pkgver}.tar.gz \
-	kernel-2.6.22.patch kernel-2.6.24.patch)
+	kernel-2.6.22.patch 
+	kernel-2.6.24.patch
+	kernel-2.6.27.patch)
 md5sums=('83b8b9a091705c08d99268479f3b3b6a'
          'a74f8e9cbba7b29620f11fba8fd7c50d'
-	 'ccf0da667cc6642dacf39dea1aac254f')
+	 'ccf0da667cc6642dacf39dea1aac254f'
+	 'ccb923f4ebf408e781544d7cf4074bf2')
 
 build() {
   cd $startdir/src/rt2500-$_pkgver/
   patch -Np1 -i ../kernel-2.6.22.patch || return 1
   patch -Np1 -i ../kernel-2.6.24.patch || return 1
+  patch -Np1 -i ../kernel-2.6.27.patch || return 1
   cd $startdir/src/rt2500-$_pkgver/Module
   make KERNDIR=/lib/modules/$_kernver/build || return 1
   install -D -m 644 rt2500.ko $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/rt2500.ko
diff --git a/abs/core-testing/rt2500/kernel-2.6.27.patch b/abs/core-testing/rt2500/kernel-2.6.27.patch
new file mode 100644
index 0000000..22abd35
--- /dev/null
+++ b/abs/core-testing/rt2500/kernel-2.6.27.patch
@@ -0,0 +1,64 @@
+diff -Nur rt2500-1.1.0-b4.orig/Module/rtmp_info.c rt2500-1.1.0-b4/Module/rtmp_info.c
+--- rt2500-1.1.0-b4.orig/Module/rtmp_info.c	2008-10-10 16:55:27.000000000 +0200
++++ rt2500-1.1.0-b4/Module/rtmp_info.c	2008-10-10 16:57:27.000000000 +0200
+@@ -481,7 +481,7 @@
+ 		iwe.cmd = SIOCGIWAP;
+ 		iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ 				memcpy(iwe.u.ap_addr.sa_data, &pAdapter->PortCfg.BssTab.BssEntry[i].Bssid, ETH_ALEN);
+-			current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
++			current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
+ 		//================================
+ 		memset(&iwe, 0, sizeof(iwe));
+ 		iwe.cmd = SIOCGIWMODE;
+@@ -499,13 +499,13 @@
+ 		}
+ 
+ 		iwe.len = IW_EV_UINT_LEN;
+-		current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
++		current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,  IW_EV_UINT_LEN);
+ 		//================================
+ 		memset(&iwe, 0, sizeof(iwe));
+ 		iwe.cmd = SIOCGIWESSID;
+ 		iwe.u.data.length = pAdapter->PortCfg.BssTab.BssEntry[i].SsidLen;
+ 		iwe.u.data.flags = 1;
+-		current_ev = iwe_stream_add_point(current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
++		current_ev = iwe_stream_add_point(info, current_ev,end_buf, &iwe, pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
+ 		//================================
+ 		memset(&iwe, 0, sizeof(iwe));
+ 		iwe.cmd = SIOCGIWENCODE;
+@@ -513,7 +513,7 @@
+ 			iwe.u.data.flags =IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
+ 		else
+ 			iwe.u.data.flags = IW_ENCODE_DISABLED;
+-		current_ev = iwe_stream_add_point(current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
++		current_ev = iwe_stream_add_point(info, current_ev, end_buf,&iwe,  pAdapter->PortCfg.BssTab.BssEntry[i].Ssid);
+ 
+ 		//================================
+ 		memset(&iwe, 0, sizeof(iwe));
+@@ -524,7 +524,7 @@
+ 		{
+ 			iwe.u.bitrate.value = RateIdToMbps[pAdapter->PortCfg.BssTab.BssEntry[i].Rates[i]/2] * 1000000;
+ 			iwe.u.bitrate.disabled = 0;
+-			current_val = iwe_stream_add_value(current_ev,
++			current_val = iwe_stream_add_value(info, current_ev,
+ 				current_val, end_buf, &iwe,
+ 				IW_EV_PARAM_LEN);
+ 		}
+@@ -537,7 +537,7 @@
+ 			iwe.u.freq.m = pAdapter->PortCfg.BssTab.BssEntry[i].Channel;
+ 		iwe.u.freq.e = 0;
+ 		iwe.u.freq.i = 0;
+-		current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
++		current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
+ 		//================================
+ 		memset(&iwe, 0, sizeof(iwe));
+                 iwe.cmd = IWEVQUAL;
+@@ -549,7 +549,7 @@
+ 		iwe.u.qual.noise = pAdapter->PortCfg.BssTab.BssEntry[i].Noise;
+                 //iwe.u.qual.noise = (pAdapter->PortCfg.LastR17Value > BBP_R17_DYNAMIC_UP_BOUND) ? BBP_R17_DYNAMIC_UP_BOUND : ((ULONG) pAdapter->PortCfg.LastR17Value);           // // noise level (dBm)
+ 
+-                current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);
++                current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_QUAL_LEN);
+ 
+ 
+                 //================================
diff --git a/abs/core-testing/rt2500/rt2500.install b/abs/core-testing/rt2500/rt2500.install
index c242f1b..40f9aa9 100644
--- a/abs/core-testing/rt2500/rt2500.install
+++ b/abs/core-testing/rt2500/rt2500.install
@@ -1,7 +1,7 @@
 # arg 1:  the new package version
 post_install()
 {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1 
 }
 
@@ -9,14 +9,14 @@ post_install()
 # arg 2:  the old package version
 post_upgrade()
 {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the old package version
 post_remove()
 {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1 	  
 }
 
diff --git a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD b/abs/core-testing/rt2x00-rt61-fw/PKGBUILD
index ef65031..0224fcc 100644
--- a/abs/core-testing/rt2x00-rt61-fw/PKGBUILD
+++ b/abs/core-testing/rt2x00-rt61-fw/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 15101 2008-10-12 16:24:41Z tpowa $
 # Maintainer: Tom Killian <tom@archlinux.org>
 
 pkgname=rt2x00-rt61-fw
 pkgver=1.2
-pkgrel=2
+pkgrel=3
 pkgdesc="Firmware for the rt2x00 wireless drivers"
 arch=(i686 x86_64)
 url="http://www.ralinktech.com/ralink/Home/Support/Linux.html"
diff --git a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD b/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD
index 5736755..890d3a6 100644
--- a/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD
+++ b/abs/core-testing/rt2x00-rt71w-fw/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 15104 2008-10-12 16:35:52Z tpowa $
 # Maintainer: Tom Killian <tom@archlinux.org>
 
 pkgname=rt2x00-rt71w-fw
 pkgver=1.8
-pkgrel=2
+pkgrel=3
 pkgdesc="Firmware for the rt2x00 wireless drivers"
 arch=(i686 x86_64)
 url="http://www.ralinktech.com/ralink/Home/Support/Linux.html"
diff --git a/abs/core-testing/tiacx/PKGBUILD b/abs/core-testing/tiacx/PKGBUILD
index d1bffc7..2e2e831 100644
--- a/abs/core-testing/tiacx/PKGBUILD
+++ b/abs/core-testing/tiacx/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 5944 2008-07-21 20:26:41Z thomas $
+# $Id: PKGBUILD 14786 2008-10-10 15:36:27Z thomas $
 # Maintainer: James Rayner <iphitus@gmail.com>
 
 pkgname=tiacx
 pkgver=20080210
-pkgrel=6
+pkgrel=7
 pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel"
 arch=(i686 x86_64)
 url="http://acx100.sourceforge.net/"
 license=('MPL')
-depends=('wireless_tools' 'kernel26>=2.6.26-1' 'kernel26<2.6.27' 'tiacx-firmware')
+depends=('wireless_tools' 'kernel26>=2.6.27' 'kernel26<2.6.28' 'tiacx-firmware')
 install=acx.install
-source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2)
-md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12')
+source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2
+        kernel-2.6.27.patch)
+md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12'
+         '9895f72f8d0c84956b0f6c3b16df0fe8')
 
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 
 build() {
     cd $startdir/src/acx-$pkgver
+    patch -Np1 -i ../kernel-2.6.27.patch || return 1
     make -C /lib/modules/${_kernver}/build M=`pwd` || return 1
     install -D acx.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless/tiacx/acx.ko
     sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
diff --git a/abs/core-testing/tiacx/acx.install b/abs/core-testing/tiacx/acx.install
index 09a0d0d..e5bd1dc 100644
--- a/abs/core-testing/tiacx/acx.install
+++ b/abs/core-testing/tiacx/acx.install
@@ -1,20 +1,20 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1 
 }
 
 # arg 1:  the new package version
 # arg 2:  the old package version
 post_upgrade() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1	 
   
 }
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION > /dev/null 2>&1	 
 }
 
diff --git a/abs/core-testing/tiacx/kernel-2.6.27.patch b/abs/core-testing/tiacx/kernel-2.6.27.patch
new file mode 100644
index 0000000..f0c114b
--- /dev/null
+++ b/abs/core-testing/tiacx/kernel-2.6.27.patch
@@ -0,0 +1,82 @@
+diff -Nur acx-20080210.orig/ioctl.c acx-20080210/ioctl.c
+--- acx-20080210.orig/ioctl.c	2008-02-10 21:06:42.000000000 +0100
++++ acx-20080210/ioctl.c	2008-10-10 17:07:32.000000000 +0200
+@@ -489,6 +489,7 @@
+ static char*
+ acx_s_scan_add_station(
+ 	acx_device_t *adev,
++	struct iw_request_info *info,
+ 	char *ptr,
+ 	char *end_buf,
+ 	struct client *bss)
+@@ -503,14 +504,14 @@
+ 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ 	MAC_COPY(iwe.u.ap_addr.sa_data, bss->bssid);
+ 	acxlog_mac(L_IOCTL, "scan, station address: ", bss->bssid, "\n");
+-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
+ 
+ 	/* Add ESSID */
+ 	iwe.cmd = SIOCGIWESSID;
+ 	iwe.u.data.length = bss->essid_len;
+ 	iwe.u.data.flags = 1;
+ 	log(L_IOCTL, "scan, essid: %s\n", bss->essid);
+-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid);
+ 
+ 	/* Add mode */
+ 	iwe.cmd = SIOCGIWMODE;
+@@ -520,7 +521,7 @@
+ 		else
+ 			iwe.u.mode = IW_MODE_ADHOC;
+ 		log(L_IOCTL, "scan, mode: %d\n", iwe.u.mode);
+-		ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_UINT_LEN);
++		ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_UINT_LEN);
+ 	}
+ 
+ 	/* Add frequency */
+@@ -528,7 +529,7 @@
+ 	iwe.u.freq.m = acx_channel_freq[bss->channel - 1] * 100000;
+ 	iwe.u.freq.e = 1;
+ 	log(L_IOCTL, "scan, frequency: %d\n", iwe.u.freq.m);
+-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
+ 
+ 	/* Add link quality */
+ 	iwe.cmd = IWEVQUAL;
+@@ -546,7 +547,7 @@
+ 	iwe.u.qual.updated = 7;
+ 	log(L_IOCTL, "scan, link quality: %d/%d/%d\n",
+ 			iwe.u.qual.level, iwe.u.qual.noise, iwe.u.qual.qual);
+-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
+ 
+ 	/* Add encryption */
+ 	iwe.cmd = SIOCGIWENCODE;
+@@ -556,7 +557,7 @@
+ 		iwe.u.data.flags = IW_ENCODE_DISABLED;
+ 	iwe.u.data.length = 0;
+ 	log(L_IOCTL, "scan, encryption flags: %X\n", iwe.u.data.flags);
+-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid);
+ 
+ 	/* add rates */
+ 	iwe.cmd = SIOCGIWRATE;
+@@ -570,7 +571,7 @@
+ 		if (rate & 1) {
+ 			iwe.u.bitrate.value = *p * 500000; /* units of 500kb/s */
+ 			log(L_IOCTL, "scan, rate: %d\n", iwe.u.bitrate.value);
+-			ptr_rate = iwe_stream_add_value(ptr, ptr_rate, end_buf,
++			ptr_rate = iwe_stream_add_value(info, ptr, ptr_rate, end_buf,
+ 						&iwe, IW_EV_PARAM_LEN);
+ 		}
+ 		rate >>= 1;
+@@ -625,7 +626,7 @@
+ 	for (i = 0; i < ARRAY_SIZE(adev->sta_list); i++) {
+ 		struct client *bss = &adev->sta_list[i];
+ 		if (!bss->used) continue;
+-		ptr = acx_s_scan_add_station(adev, ptr,
++		ptr = acx_s_scan_add_station(adev, info, ptr,
+ 			extra + IW_SCAN_MAX_DATA, bss);
+ 	}
+ 	dwrq->length = ptr - extra;
diff --git a/abs/core-testing/tmp/PKGBUILD b/abs/core-testing/tmp/PKGBUILD
new file mode 100644
index 0000000..b96120c
--- /dev/null
+++ b/abs/core-testing/tmp/PKGBUILD
@@ -0,0 +1,159 @@
+# $Id: PKGBUILD 10337 2008-08-26 21:10:56Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=kernel26
+_basekernel=2.6.26
+pkgver=2.6.26.3
+pkgrel=10
+#_patchname="patch-${pkgver}-${pkgrel}-ARCH"
+_patchname="patch-${pkgver}-1-ARCH"
+pkgdesc="The Linux Kernel and modules"
+arch=(i686 x86_64)
+license=('GPL2')
+groups=('base')
+url="http://www.kernel.org"
+backup=(etc/mkinitcpio.d/${pkgname}.preset)
+depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.18')
+# pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
+# nforce package support was abandoned by nvidia, kernel modules should cover everything now.
+# kernel24 support is dropped since glibc24
+replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
+          'alsa-driver' 'ieee80211' 'hostap-driver26'
+          'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
+	  'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs')
+install=kernel26.install
+source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
+        ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2
+        # the main kernel config files
+        config config.x86_64
+        # standard config files for mkinitcpio ramdisk
+        kernel26.preset
+	logo_linux_clut224.ppm
+	logo_linux_mono.pbm
+	logo_linux_vga16.ppm)
+md5sums=('5169d01c405bc3f866c59338e217968c'
+         '003e89dd71b32ae9b93cd1601da3b1b0'
+	 '4fd1071a8dc2ea993aed81d5920de18d'
+         'd5ad1f296356d159a2616a49d98b3434'
+	 '25584700a0a679542929c4bed31433b6'
+	 '7bdfe2e1daedb324fdfdfa95ba4e2430'
+	 'a88d90384e50bd061a81fcc6573fc3bb'
+	 'f536292192a69d590b2ffd4700c14185')
+
+build() {
+  KARCH=x86
+
+  cd $startdir/src/linux-$_basekernel
+  # Add -ARCH patches
+  # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary
+  patch -Np1 -i $startdir/src/${_patchname} || return 1
+
+  if [ "$CARCH" = "x86_64" ]; then
+    cat ../config.x86_64 >./.config
+  else
+    cat ../config >./.config
+  fi
+  cp ../logo_linux_clut224.ppm drivers/video/logo/
+  cp ../logo_linux_mono.ppm drivers/video/logo/
+  cp ../logo_linux_vga16.ppm drivers/video/logo/
+  # build the full kernel version to use in pathnames
+  . ./.config
+  ### next line is only needed for rc kernels
+  #_kernver="2.6.25${CONFIG_LOCALVERSION}"
+  _kernver="${_basekernel}${CONFIG_LOCALVERSION}"
+  # load configuration
+  yes "" | make config
+  # build!
+  ####################
+  # stop here
+  # this is useful to configure the kernel
+  #msg "Stopping build"
+  #return 1
+  ####################
+  make bzImage modules || return 1
+  mkdir -p $startdir/pkg/{lib/modules,boot}
+  make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
+  cp System.map $startdir/pkg/boot/System.map26
+  cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26
+  install -D -m644 Makefile \
+    $startdir/pkg/usr/src/linux-${_kernver}/Makefile
+  install -D -m644 kernel/Makefile \
+    $startdir/pkg/usr/src/linux-${_kernver}/kernel/Makefile
+  install -D -m644 .config \
+    $startdir/pkg/usr/src/linux-${_kernver}/.config
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include
+
+  for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound video; do
+    cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/
+  done
+
+  # copy files necessary for later builds, like nvidia and vmware
+  cp Module.symvers $startdir/pkg/usr/src/linux-${_kernver}
+  cp -a scripts $startdir/pkg/usr/src/linux-${_kernver}
+  # fix permissions on scripts dir
+  chmod og-w -R $startdir/pkg/usr/src/linux-${_kernver}/scripts
+  #mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
+
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel
+
+  cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
+  if [ "$CARCH" = "i686" ]; then
+    cp arch/$KARCH/Makefile_32.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
+  fi
+  cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
+
+  # add headers for lirc package
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video
+  cp drivers/media/video/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/
+  for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do
+   mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
+   cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
+  done
+  # add dm headers
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
+  cp drivers/md/*.h  $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
+  # add inotify.h
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/linux
+  cp include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/
+  # add CLUSTERIP file for iptables
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/
+  # add wireless headers
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/
+  cp net/mac80211/*.h $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/
+  # add dvb headers for external modules
+  # in reference to:
+  # http://bugs.archlinux.org/task/9912
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
+  cp drivers/media/dvb/dvb-core/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
+  # add dvb headers for external modules
+  # in reference to:
+  # http://bugs.archlinux.org/task/11194
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/
+  cp include/config/dvb/*.h $startdir/pkg/usr/src/linux-${_kernver}/include/config/dvb/
+  # add xfs and shmem for aufs building
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs
+  mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/mm
+  cp fs/xfs/xfs_sb.h $startdir/pkg/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
+  # add vmlinux
+  cp vmlinux $startdir/pkg/usr/src/linux-${_kernver}
+  # copy in Kconfig files
+  for i in `find . -name "Kconfig*"`; do 
+    mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
+    cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
+  done
+
+  cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
+
+  chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}
+  find $startdir/pkg/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
+  cd $startdir/pkg/lib/modules/${_kernver} && \
+    (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)
+  # install fallback mkinitcpio.conf file and preset file for kernel
+  install -m644 -D $startdir/src/${pkgname}.preset $startdir/pkg/etc/mkinitcpio.d/${pkgname}.preset || return 1
+  # set correct depmod command for install
+  sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install
+  echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver
+  # remove unneeded architectures
+  rm -rf $startdir/pkg/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
+
diff --git a/abs/core-testing/tmp/logo_linux_clut224.ppm b/abs/core-testing/tmp/logo_linux_clut224.ppm
new file mode 100644
index 0000000..c539d32
--- /dev/null
+++ b/abs/core-testing/tmp/logo_linux_clut224.ppm
@@ -0,0 +1,883 @@
+P3
+80 80
+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 24 24 24 95 95 95 143 148 147 219 219 219 224 224 224 224 224 224 221 221 221 
+231 231 230 232 232 232 217 218 217 194 194 194 143 148 147 61 61 61 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 65 65 65 
+179 180 180 224 224 224 141 142 141 85 85 85 25 25 26 2 2 2 0 0 0 0 0 0 
+0 0 0 0 0 0 11 11 11 35 37 37 95 95 95 179 180 180 221 221 221 136 141 140 
+28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 24 24 191 191 191 194 194 194 
+73 73 73 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 109 109 110 
+224 223 222 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 234 234 234 104 104 104 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 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 
+20 20 20 204 204 204 119 120 120 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 35 35 36 228 228 227 56 56 56 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 69 69 69 45 47 47 7 7 7 
+0 0 0 16 16 16 159 159 159 197 197 197 8 8 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 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 208 207 206 88 88 88 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 111 114 112 109 109 110 51 51 51 
+2 2 2 0 0 0 1 1 1 146 149 148 167 167 166 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 81 79 75 197 202 202 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 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 104 104 104 81 79 75 43 43 43 
+8 8 8 0 0 0 0 0 0 7 7 7 213 213 213 65 65 65 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 191 191 191 88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 28 28 28 28 28 28 7 7 7 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 228 228 227 20 20 20 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 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 246 246 246 22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 131 131 131 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 8 8 8 246 246 246 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 197 197 197 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 12 12 12 241 241 241 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 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 22 22 22 5 5 5 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 225 224 224 56 56 56 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 7 7 7 246 246 246 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 
+20 20 20 43 43 43 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 4 4 4 25 25 26 31 31 31 20 20 20 65 65 65 20 20 20 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 149 148 124 129 126 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 3 3 3 254 254 254 4 4 4 0 0 0 0 0 0 31 31 31 104 104 104 
+119 120 120 51 51 51 28 28 28 20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 
+7 7 7 73 73 73 131 131 131 153 159 160 159 159 159 153 159 160 35 35 36 24 24 24 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 95 95 175 172 168 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 4 4 4 254 254 254 4 4 4 0 0 0 25 25 26 141 142 141 187 186 186 
+197 197 197 167 167 166 65 65 65 4 4 4 0 0 0 0 0 0 0 0 0 9 9 9 
+109 109 110 179 180 180 197 197 197 208 207 206 213 213 213 191 191 191 123 123 123 7 7 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 65 65 187 186 186 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 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 241 241 241 5 5 5 0 0 0 85 85 85 208 207 206 226 227 227 
+235 235 235 246 246 246 221 221 221 22 22 22 0 0 0 0 0 0 0 0 0 85 85 85 
+217 218 217 246 246 246 226 227 227 167 167 166 202 202 202 239 239 239 197 197 197 73 73 73 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 217 218 217 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 235 235 235 7 7 7 0 0 0 131 136 135 159 159 159 11 11 11 
+69 69 69 131 136 135 246 246 246 104 104 104 0 0 0 0 0 0 0 0 0 123 123 123 
+236 237 236 203 203 203 20 20 20 20 20 20 88 88 88 124 129 126 246 246 246 194 194 194 
+7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 226 227 227 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 234 234 234 28 28 28 0 0 0 146 149 148 65 65 65 0 0 0 
+109 109 110 51 51 51 234 234 234 131 136 135 0 0 0 35 35 36 22 22 22 123 123 123 
+239 239 239 95 95 95 0 0 0 0 0 0 43 43 43 16 16 16 225 224 224 244 244 244 
+45 47 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 241 241 241 
+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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 217 218 217 51 51 51 1 1 1 131 131 131 85 85 85 0 0 0 
+22 22 22 28 28 28 208 207 206 127 128 122 58 43 7 58 43 7 30 20 1 73 73 73 
+231 230 229 65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 246 246 246 
+43 43 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 246 246 246 
+24 24 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 172 176 175 85 85 85 0 0 0 73 73 73 187 186 186 5 5 5 
+0 0 0 30 20 1 190 146 50 224 170 17 221 175 7 221 175 7 201 165 9 191 150 3 
+220 185 82 91 70 38 8 6 3 1 1 0 0 0 0 43 43 43 239 239 239 228 228 227 
+11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 232 232 232 
+35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 172 176 175 95 95 95 0 0 0 9 9 9 204 204 204 131 136 135 
+91 61 1 204 146 9 217 163 7 232 191 11 232 191 11 226 196 19 219 193 11 197 162 19 
+226 196 19 219 193 11 201 165 9 130 96 8 107 93 64 228 228 227 248 248 248 112 118 114 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 235 235 
+16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 143 148 147 109 109 110 0 0 0 0 0 0 81 79 75 227 180 59 
+204 146 9 234 184 12 239 191 15 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 
+231 199 39 231 199 39 219 193 11 219 193 11 219 193 11 227 180 59 192 156 83 8 6 3 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 239 239 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 131 131 131 111 114 112 0 0 0 30 20 1 155 102 4 198 139 9 
+230 172 11 238 184 11 237 191 8 238 196 12 238 196 12 226 196 19 231 199 39 220 185 82 
+231 199 39 231 199 39 226 196 19 219 193 11 219 193 11 219 193 11 226 196 19 159 120 9 
+4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+20 20 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 131 131 131 123 123 123 0 0 0 120 77 2 187 136 3 217 155 7 
+229 171 7 238 184 8 238 184 8 238 196 12 238 196 12 231 199 39 231 199 39 231 199 39 
+231 199 39 219 193 11 219 193 11 219 193 11 219 193 11 191 150 3 197 162 19 201 165 9 
+30 20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 202 202 
+56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 119 120 120 141 142 141 1 1 0 104 68 5 175 125 4 217 155 7 
+229 171 7 238 184 8 238 196 12 238 196 12 226 196 19 231 199 39 231 199 39 226 196 19 
+219 193 11 219 193 11 219 193 11 191 150 3 191 150 3 201 165 9 217 155 7 183 127 3 
+4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
+73 73 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 51 51 
+143 148 147 224 223 222 225 224 224 146 149 148 4 4 4 8 6 3 130 96 8 175 125 4 
+217 163 7 238 184 8 238 196 12 231 199 39 231 199 39 226 196 19 226 196 19 219 193 11 
+201 165 9 191 150 3 175 125 4 191 150 3 216 159 5 206 148 3 198 139 9 91 70 38 
+0 0 0 0 0 0 5 5 5 45 47 47 12 12 12 0 0 0 0 0 0 167 167 166 
+88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 20 20 159 159 159 226 227 227 
+172 176 175 136 141 140 123 135 137 124 131 129 112 118 114 45 47 47 141 122 119 130 96 8 
+155 102 4 191 150 3 219 193 11 219 193 11 201 165 9 191 150 3 191 150 3 175 125 4 
+191 150 3 191 150 3 191 150 3 187 136 3 188 133 20 190 146 50 175 172 168 175 172 168 
+25 25 26 0 0 0 1 1 1 56 56 56 94 100 97 56 56 56 2 2 2 95 95 95 
+172 176 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 159 160 217 218 217 144 156 160 
+144 156 160 144 156 160 138 149 149 123 135 137 94 103 103 104 116 120 183 181 175 162 157 129 
+148 102 14 155 102 4 175 125 4 191 150 3 191 150 3 191 150 3 191 150 3 191 150 3 
+200 140 3 199 131 5 188 133 20 192 156 83 175 172 168 197 197 197 194 194 194 187 186 186 
+109 109 110 0 0 0 0 0 0 8 8 8 95 95 95 111 114 112 31 31 31 18 18 18 
+241 241 241 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 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 159 166 168 86 124 118 
+144 156 160 138 149 149 123 135 137 144 156 160 94 103 103 124 131 129 159 159 159 191 191 191 
+162 157 129 148 102 14 155 102 4 182 124 9 198 139 9 187 136 3 199 131 5 170 114 5 
+170 114 5 190 146 50 163 157 151 187 186 186 197 197 197 231 230 229 241 240 237 221 221 221 
+191 191 191 34 34 34 0 0 0 0 0 0 9 9 9 39 40 40 4 4 4 1 1 1 
+228 228 227 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 248 248 138 149 149 123 135 137 
+123 135 137 138 149 149 104 116 120 146 149 148 119 128 123 131 136 135 123 135 137 204 204 204 
+192 192 192 175 172 168 145 135 65 148 102 14 148 102 14 148 102 14 148 102 14 145 135 65 
+162 157 129 183 181 175 191 191 191 208 207 206 241 240 237 255 255 254 254 254 254 254 254 254 
+236 237 236 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+146 149 148 131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 204 204 159 166 168 144 156 160 
+113 134 127 144 156 160 94 103 103 136 141 140 119 128 123 119 128 123 112 118 114 221 221 221 
+194 194 194 187 186 186 187 186 186 172 176 175 175 172 168 179 180 180 187 186 186 187 186 186 
+194 194 194 197 197 197 224 223 222 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+69 69 69 225 224 224 35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 35 35 36 226 227 227 123 135 137 159 166 168 
+86 124 118 138 149 149 113 134 127 112 118 114 131 136 135 104 104 104 124 131 129 204 204 204 
+224 224 224 191 191 191 187 186 186 187 186 186 179 180 180 187 186 186 187 186 186 194 194 194 
+213 213 213 241 240 237 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 146 149 148 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 81 79 75 226 227 227 81 79 75 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 39 40 40 231 230 229 73 73 73 25 25 26 153 159 160 
+104 116 120 123 135 137 123 135 137 104 116 120 141 142 141 94 103 103 136 141 140 153 159 160 
+253 252 251 225 224 224 197 197 197 189 189 189 189 189 189 191 191 191 208 207 206 233 231 230 
+253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 246 246 246 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 34 34 34 197 197 197 167 167 166 9 9 9 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 25 25 26 221 221 221 69 69 69 0 0 0 2 2 2 123 135 137 
+123 135 137 104 116 120 136 141 140 119 128 123 131 136 135 113 134 127 113 134 127 113 134 127 
+254 254 254 254 254 254 244 244 244 228 228 227 228 228 227 239 239 239 251 251 251 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 131 136 135 1 1 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 2 2 2 167 167 166 146 149 148 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 3 3 3 202 202 202 104 104 104 0 0 0 0 0 0 0 0 0 77 85 86 
+153 159 160 141 122 119 123 135 137 94 103 103 94 103 103 113 134 127 145 140 129 112 118 114 
+231 233 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 239 239 239 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 31 31 31 219 219 219 81 79 75 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 143 148 147 179 180 180 1 1 1 0 0 0 0 0 0 0 0 0 35 37 37 
+159 166 168 143 148 147 94 103 103 109 109 110 86 124 118 119 128 123 94 100 97 127 128 122 
+179 180 180 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 95 95 95 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 43 43 236 237 236 20 20 20 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+3 3 3 235 235 235 25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 
+138 149 149 123 135 137 77 85 86 112 118 114 94 103 103 104 116 120 111 114 112 145 140 129 
+143 148 147 254 254 254 254 254 254 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+251 251 251 241 241 241 246 246 246 254 254 254 179 180 180 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 167 167 166 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+111 114 112 172 176 175 16 16 16 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 
+94 100 97 159 166 168 113 134 127 104 104 104 94 103 103 104 116 120 113 134 127 113 134 127 
+119 128 123 251 251 251 236 237 236 226 227 227 231 230 229 244 244 244 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 246 246 246 232 232 232 224 224 224 217 218 217 213 213 213 
+203 203 203 204 204 204 203 203 203 221 221 221 251 251 251 56 56 56 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 16 16 236 237 236 
+22 22 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
+217 218 217 65 65 65 104 104 104 45 47 47 1 1 1 0 0 0 0 0 0 1 1 0 
+43 43 43 153 159 160 162 157 129 136 141 140 113 134 127 119 128 123 124 131 129 104 116 120 
+109 109 110 236 237 236 248 248 248 232 232 232 251 251 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 251 251 251 239 239 239 224 223 222 213 213 213 167 167 166 
+123 123 123 94 100 97 192 192 192 194 194 194 224 223 222 189 189 189 3 3 3 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 35 37 37 11 11 11 131 131 131 
+159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
+213 213 213 9 9 9 119 120 120 123 123 123 43 43 43 3 3 3 0 0 0 0 0 0 
+35 37 37 138 149 149 113 134 127 111 114 112 119 128 123 94 103 103 124 129 126 94 103 103 
+124 131 129 197 202 202 251 251 251 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 246 246 246 153 159 160 
+73 73 73 4 4 4 189 189 189 197 197 197 197 197 197 235 235 235 85 85 85 0 0 0 
+0 0 0 0 0 0 0 0 0 12 12 12 65 65 65 81 79 75 11 11 11 12 12 12 
+251 251 251 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 123 123 
+136 141 140 0 0 0 39 40 40 109 109 110 123 123 123 104 104 104 56 56 56 24 24 24 
+131 136 135 167 167 166 131 136 135 112 118 114 124 131 129 112 118 114 124 131 129 112 118 114 
+119 128 123 159 166 168 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 219 219 219 109 109 110 
+16 16 16 1 1 0 172 176 175 231 231 230 208 207 206 203 203 203 213 213 213 18 18 18 
+3 3 3 35 37 37 85 85 85 104 104 104 65 65 65 9 9 9 0 0 0 0 0 0 
+240 240 239 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 186 186 
+73 73 73 0 0 0 1 1 1 18 18 18 61 61 61 109 109 110 123 123 123 124 129 126 
+136 141 140 153 159 160 153 159 160 138 149 149 146 149 148 138 149 149 146 149 148 138 149 149 
+138 149 149 159 166 168 253 252 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 192 192 192 88 88 88 
+4 4 4 0 0 0 141 142 141 254 254 254 239 239 239 202 202 202 187 186 186 136 141 140 
+112 118 114 95 95 95 61 61 61 22 22 22 2 2 2 0 0 0 0 0 0 0 0 0 
+204 204 204 51 51 51 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 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 219 219 
+39 40 40 0 0 0 0 0 0 0 0 0 1 1 1 16 16 16 56 56 56 95 95 95 
+112 118 114 123 123 123 127 128 122 127 128 122 124 129 126 124 131 129 131 136 135 136 141 140 
+136 141 140 141 142 141 159 159 159 159 159 159 112 118 114 104 104 104 232 232 232 254 254 254 
+254 254 254 254 254 254 219 219 219 175 172 168 153 159 160 131 131 131 131 131 131 61 61 61 
+2 2 2 0 0 0 51 51 51 131 131 131 123 123 123 111 114 112 95 95 95 56 56 56 
+28 28 28 5 5 5 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+146 149 148 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 224 224 
+35 35 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 11 11 
+25 25 26 51 51 51 73 73 73 88 88 88 94 100 97 104 104 104 104 104 104 94 100 97 
+104 104 104 95 95 95 88 88 88 65 65 65 12 12 12 1 1 1 69 69 69 254 254 254 
+254 254 254 221 221 221 31 31 31 61 61 61 73 73 73 81 79 75 56 56 56 11 11 11 
+0 0 0 0 0 0 5 5 5 24 24 24 24 24 24 12 12 12 4 4 4 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+141 142 141 104 104 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 227 227 
+34 34 34 0 0 0 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 2 2 9 9 9 12 12 12 12 12 12 16 16 16 18 18 18 
+12 12 12 7 7 7 4 4 4 1 1 1 0 0 0 0 0 0 1 1 1 234 234 234 
+254 254 254 136 141 140 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 0 0 0 0 0 0 0 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 
+131 131 131 124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 213 213 
+51 51 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 218 217 
+254 254 254 112 118 114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+153 159 160 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+131 131 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 248 248 248 
+255 255 255 146 149 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 34 34 
+233 231 230 16 16 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 37 37 
+239 239 239 31 31 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 104 104 254 254 254 
+254 254 254 235 235 235 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 114 112 
+159 159 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+159 159 159 141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 40 40 236 237 236 254 254 254 
+254 254 254 254 254 254 159 159 159 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 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 241 241 
+61 61 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+197 197 197 65 65 65 0 0 0 8 8 8 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 73 73 73 232 232 232 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 159 159 159 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 228 227 
+35 37 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 
+244 244 244 7 7 7 0 0 0 73 73 73 236 237 236 131 136 135 43 43 43 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 24 24 24 94 100 97 194 194 194 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 235 235 235 131 131 131 45 47 47 2 2 2 
+0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 197 197 
+65 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 47 47 
+204 204 204 0 0 0 0 0 0 111 114 112 255 255 255 255 255 255 255 255 255 225 224 224 
+167 167 166 131 131 131 104 104 104 88 88 88 88 88 88 104 104 104 131 131 131 167 167 166 
+203 203 203 225 224 224 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 231 231 230 
+172 176 175 131 131 131 94 100 97 81 79 75 69 69 69 73 73 73 95 95 95 123 123 123 
+175 172 168 191 191 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 176 175 
+88 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
+175 172 168 0 0 0 1 1 0 131 136 135 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
+240 240 239 228 228 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 219 219 219 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 131 136 135 
+124 129 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 
+179 180 180 0 0 0 0 0 0 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 219 219 219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+111 114 112 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 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 25 26 159 159 159 224 223 222 
+167 167 166 0 0 0 1 1 1 141 142 141 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+240 240 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
+255 255 255 204 204 204 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
+119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 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 2 2 131 131 131 240 235 222 231 198 127 231 199 39 
+190 146 50 58 43 7 1 1 0 131 131 131 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
+254 254 254 153 159 160 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 141 142 141 
+111 114 112 2 2 2 16 16 16 34 34 34 35 35 36 16 16 16 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 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 0 163 157 151 218 210 190 233 177 11 239 191 15 239 191 15 
+239 194 10 230 173 7 104 68 5 127 128 122 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 231 231 230 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 253 252 251 253 252 251 
+237 229 207 141 122 119 5 4 2 0 0 0 0 0 0 0 0 0 0 0 0 141 142 141 
+244 244 244 240 235 222 240 235 222 237 229 207 237 229 207 237 229 207 208 207 206 51 51 51 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 95 95 95 237 229 207 224 170 17 233 177 11 237 185 13 239 191 15 
+239 191 15 239 191 15 233 179 8 192 156 83 255 255 255 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+239 239 239 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 240 235 222 222 169 38 
+215 152 18 219 157 11 204 146 9 188 133 20 148 102 14 130 96 8 148 102 14 188 133 20 
+190 146 50 215 152 18 215 152 18 221 159 7 217 155 7 215 152 18 220 185 82 236 237 236 
+25 25 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 28 28 28 233 231 230 227 180 59 215 152 18 223 162 13 233 177 11 238 184 11 
+239 191 15 238 184 11 239 191 15 238 196 12 214 199 171 255 255 255 255 255 255 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+241 241 241 226 227 227 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 255 255 254 253 252 251 203 181 131 198 139 9 
+204 146 9 219 157 11 219 157 11 215 152 18 219 157 11 215 152 18 215 152 18 215 152 18 
+223 162 13 224 170 17 230 172 11 233 177 11 231 175 8 223 162 13 215 152 18 231 198 127 
+141 142 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 11 11 
+85 85 85 230 228 223 220 185 82 204 146 9 219 157 11 230 172 11 234 181 11 236 184 12 
+237 185 13 237 185 13 238 184 11 239 194 10 239 191 15 249 244 230 253 252 251 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 251 251 251 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 255 254 254 254 240 235 222 182 124 9 199 131 5 
+217 155 7 221 159 7 227 169 7 233 176 9 230 172 11 230 172 11 230 172 11 233 177 11 
+233 177 11 235 179 10 235 179 10 236 183 11 234 181 11 230 172 11 224 170 17 227 180 59 
+231 233 233 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 61 61 61 88 88 88 146 149 148 191 191 191 230 228 223 
+237 229 207 190 146 50 215 152 18 219 157 11 230 172 11 233 177 11 234 182 11 236 185 13 
+237 185 13 237 185 13 237 185 13 238 184 11 239 194 10 227 180 59 249 244 230 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 235 235 235 202 202 202 203 181 131 170 114 5 198 139 9 
+216 159 5 227 169 7 234 178 8 236 182 10 234 181 11 234 181 11 234 181 11 234 182 11 
+236 183 11 234 181 11 236 182 10 236 183 11 236 182 10 231 175 8 224 170 17 215 152 18 
+244 244 244 34 34 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 131 131 131 240 235 222 231 198 127 231 198 127 227 180 59 188 133 20 
+204 146 9 217 144 7 219 157 11 227 166 7 233 177 11 236 182 10 237 185 11 237 185 13 
+237 185 13 237 185 13 239 191 15 238 184 11 238 184 8 232 191 11 220 185 82 255 255 255 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 170 114 5 204 146 9 
+221 159 7 229 171 7 234 180 8 236 184 10 237 185 11 237 185 11 236 183 11 235 183 10 
+235 183 10 236 184 11 237 185 11 237 183 10 237 181 9 235 179 10 227 169 7 198 139 9 
+218 210 190 119 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+1 1 0 111 114 112 237 229 207 222 169 38 223 162 13 227 166 7 224 170 17 230 172 11 
+230 172 11 230 172 11 230 172 11 233 176 9 236 180 8 237 183 10 237 185 11 237 185 12 
+237 185 13 237 185 13 237 185 13 236 186 12 238 184 8 236 186 12 232 191 11 214 199 171 
+255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 187 186 186 192 156 83 182 124 9 198 139 9 
+217 163 7 233 176 6 236 182 9 237 183 10 236 184 10 237 183 10 236 182 9 235 182 10 
+235 183 10 235 184 12 236 186 12 235 183 9 237 181 9 235 179 10 227 169 7 217 155 7 
+192 156 83 238 236 230 28 28 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 203 203 203 227 180 59 215 152 18 224 170 17 233 177 11 235 179 10 236 180 8 
+236 180 8 236 180 8 234 180 8 235 179 10 235 181 9 236 183 11 236 184 11 236 185 13 
+237 185 13 237 185 13 237 185 13 237 185 13 238 184 11 238 184 8 237 191 8 226 196 19 
+240 235 222 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 248 248 248 197 197 197 192 192 192 192 156 83 175 125 4 204 146 9 
+221 159 7 233 176 6 235 181 9 235 181 9 235 183 9 235 182 10 235 183 10 235 183 10 
+235 183 10 235 184 11 236 184 12 235 183 9 236 180 8 234 178 8 230 172 11 217 155 7 
+198 139 9 203 181 131 240 235 222 56 56 56 0 0 0 0 0 0 0 0 0 0 0 0 
+
+1 1 1 217 218 217 227 180 59 227 169 7 235 179 10 236 182 10 237 183 10 237 183 10 
+236 182 9 236 182 9 235 183 9 235 183 9 235 183 10 236 184 11 236 184 11 236 184 11 
+236 185 13 237 185 13 237 185 13 237 185 13 237 185 13 237 185 11 236 182 9 232 191 11 
+227 180 59 248 248 248 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 208 207 206 189 189 189 192 156 83 183 127 3 217 155 7 
+227 169 7 236 182 10 233 179 8 234 178 8 235 181 9 235 182 10 235 182 10 235 183 10 
+235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 180 8 229 171 7 223 162 13 
+217 155 7 199 131 5 220 185 82 238 236 230 167 167 166 39 40 40 0 0 0 0 0 0 
+
+0 0 0 217 218 217 220 185 82 215 152 18 233 177 11 236 182 10 236 183 11 237 185 11 
+236 185 13 236 184 12 236 184 10 236 184 10 236 183 11 236 184 11 236 183 11 236 184 11 
+236 184 12 237 185 12 237 185 13 237 185 13 237 185 13 237 185 11 238 184 8 237 191 8 
+222 189 8 231 198 127 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 219 219 219 179 180 180 107 93 64 198 139 9 206 148 3 
+227 169 7 234 178 7 234 180 8 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 
+235 183 10 235 183 10 236 184 10 235 183 9 234 180 8 234 178 8 233 176 9 229 171 7 
+223 162 13 219 157 11 217 144 7 215 152 18 220 185 82 249 244 230 124 129 126 0 0 0 
+
+1 1 1 194 194 194 220 185 82 219 157 11 230 172 11 234 181 11 235 184 11 235 184 11 
+235 184 11 235 183 10 235 183 10 235 183 10 235 182 10 236 183 11 236 183 11 236 184 12 
+236 184 12 236 184 12 236 185 13 236 185 13 237 184 12 235 184 12 236 184 11 237 183 10 
+238 196 12 221 175 7 237 229 207 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 197 197 197 39 40 40 104 68 5 187 136 3 206 148 3 
+227 169 7 234 178 7 235 181 9 234 180 8 235 181 9 235 182 10 235 182 10 236 183 11 
+235 182 10 235 183 10 235 183 10 235 183 10 235 183 9 235 181 9 235 181 9 235 179 10 
+231 175 8 227 166 7 219 157 11 215 152 18 215 152 18 222 169 38 225 224 224 1 1 1 
+
+0 0 0 179 180 180 231 198 127 204 146 9 230 172 11 234 181 11 234 181 11 235 183 10 
+235 183 10 235 183 10 235 183 10 235 183 10 235 183 10 236 183 11 236 183 11 236 183 11 
+236 183 11 236 184 11 236 184 11 235 184 11 234 184 12 234 184 12 235 184 11 237 185 11 
+238 184 8 237 191 8 222 169 38 249 244 230 253 252 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 194 194 194 25 25 26 1 1 0 104 68 5 187 136 3 217 155 7 
+227 169 7 234 178 7 235 181 9 235 182 10 235 182 10 235 183 10 235 183 10 236 183 11 
+236 183 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 10 236 184 10 237 183 10 
+235 181 9 233 177 11 227 169 7 219 157 11 217 144 7 231 198 127 197 197 197 2 2 2 
+
+1 1 1 153 159 160 231 198 127 215 152 18 224 170 17 233 177 11 235 184 11 236 182 10 
+236 182 10 235 182 10 235 182 10 235 182 10 235 184 11 236 183 11 236 183 11 236 183 11 
+236 183 11 236 183 11 235 184 11 235 184 11 235 184 11 234 184 12 234 182 11 236 184 11 
+238 184 8 234 187 8 232 191 11 220 185 82 253 252 251 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+241 241 241 119 120 120 4 4 4 0 0 0 0 0 0 130 96 8 187 136 3 216 159 5 
+230 173 7 234 178 7 234 180 8 235 183 9 236 184 11 236 184 12 236 184 11 237 185 11 
+237 185 11 236 183 11 236 183 11 236 184 11 236 184 11 236 184 11 236 185 13 237 185 12 
+236 184 12 235 179 10 223 162 13 199 131 5 220 185 82 219 219 219 11 11 11 0 0 0 
+
+0 0 0 136 141 140 231 198 127 215 152 18 223 162 13 233 177 11 237 184 12 238 184 11 
+236 182 10 235 182 10 235 182 10 235 182 10 235 182 10 236 183 11 236 183 11 236 184 11 
+237 185 11 236 184 12 235 184 11 235 184 11 235 184 12 234 182 11 235 184 11 235 183 10 
+236 182 9 233 181 8 222 189 8 221 175 7 231 198 127 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 251 251 251 159 159 159 
+28 28 28 0 0 0 0 0 0 0 0 0 8 6 3 130 96 8 200 140 3 221 159 7 
+229 171 7 233 176 6 234 178 7 234 187 8 237 185 13 237 185 13 237 185 13 237 185 12 
+237 185 11 236 184 11 235 184 11 235 184 11 236 184 11 237 185 12 237 185 12 237 185 13 
+237 185 13 230 172 11 199 131 5 215 152 18 246 246 246 31 31 31 2 2 2 1 1 1 
+
+0 0 0 159 159 159 231 198 127 215 152 18 227 166 7 235 179 10 236 183 11 237 185 11 
+236 183 11 235 181 9 233 179 8 234 180 8 235 181 9 236 183 11 236 183 11 236 184 11 
+236 184 11 236 185 13 236 185 13 236 185 13 236 185 13 234 184 12 234 182 11 235 183 9 
+234 178 7 233 181 8 221 175 7 221 175 7 198 139 9 214 199 171 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 244 244 244 167 167 166 45 47 47 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 200 140 3 216 159 5 
+229 171 7 233 176 6 235 183 9 234 184 12 235 184 12 237 185 13 236 186 12 236 186 12 
+237 185 11 235 184 11 235 184 11 235 184 11 235 184 12 236 185 13 237 185 13 238 184 11 
+233 177 11 217 144 7 222 169 38 246 246 246 109 109 110 2 2 2 0 0 0 0 0 0 
+
+0 0 0 213 213 213 227 180 59 217 144 7 227 166 7 233 176 9 234 180 8 236 182 10 
+236 182 10 233 176 6 231 175 8 231 175 8 233 179 8 236 182 10 236 183 11 236 184 12 
+236 184 12 236 185 13 236 185 13 236 185 13 235 184 12 234 184 12 235 184 11 235 183 9 
+236 180 8 234 178 7 227 169 7 217 163 7 204 146 9 130 96 8 81 79 75 167 167 166 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 253 252 251 
+239 239 239 204 204 204 146 149 148 85 85 85 16 16 16 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 30 20 1 155 102 4 206 148 3 217 163 7 
+229 171 7 233 176 6 233 181 8 234 184 12 236 185 13 237 185 13 237 185 12 236 185 13 
+235 184 11 235 184 11 235 184 11 234 182 11 234 182 11 233 176 9 230 172 11 229 171 7 
+215 152 18 231 198 127 233 231 230 69 69 69 5 4 2 0 0 0 0 0 0 0 0 0 
+
+18 18 18 244 244 244 215 152 18 217 155 7 221 159 7 223 165 7 227 169 7 230 173 7 
+231 175 8 230 173 7 231 175 8 231 175 8 233 176 6 234 180 8 236 182 10 237 184 12 
+237 184 12 237 185 12 237 185 13 237 185 13 237 185 13 236 185 13 235 184 12 236 184 11 
+236 182 9 237 183 8 229 171 7 217 163 7 204 146 9 170 114 5 91 61 1 1 1 0 
+2 2 2 31 31 31 39 40 40 43 43 43 43 43 43 39 40 40 35 37 37 20 20 20 
+3 3 3 0 0 0 0 0 0 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 0 58 43 7 170 114 5 200 140 3 216 159 5 
+229 171 7 233 176 6 234 178 7 235 183 9 235 184 11 237 185 12 237 185 12 235 181 9 
+235 179 10 234 181 11 235 179 10 233 176 9 231 175 8 230 172 11 215 152 18 215 152 18 
+240 235 222 141 142 141 16 16 16 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+43 43 43 249 244 230 215 152 18 204 146 9 204 146 9 204 146 9 217 155 7 217 155 7 
+216 159 5 216 159 5 223 165 7 223 165 7 227 169 7 229 171 7 231 175 8 233 176 9 
+235 179 10 235 179 10 236 183 11 237 185 11 236 183 11 236 183 11 236 183 11 236 183 11 
+236 183 11 234 180 8 227 169 7 216 159 5 187 136 3 170 114 5 104 68 5 15 12 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 91 61 1 155 102 4 200 140 3 217 155 7 
+223 165 7 230 173 7 233 176 6 234 178 7 233 179 8 236 180 8 235 179 10 233 176 9 
+233 176 9 230 173 7 227 166 7 223 165 7 215 152 18 190 146 50 231 198 127 241 240 237 
+85 85 85 5 4 2 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+4 4 4 202 202 202 237 229 207 192 156 83 188 133 20 182 124 9 182 124 9 183 127 3 
+199 131 5 198 139 9 204 146 9 204 146 9 204 146 9 206 148 3 217 155 7 217 163 7 
+223 165 7 223 165 7 230 173 7 233 179 8 234 178 8 234 178 8 234 178 8 233 176 9 
+231 175 8 229 171 7 216 159 5 198 139 9 175 125 4 155 102 4 104 68 5 30 20 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 58 43 7 155 102 4 183 127 3 200 140 3 
+216 159 5 223 165 7 229 171 7 233 176 6 231 175 8 231 175 8 229 171 7 227 166 7 
+223 165 7 217 155 7 204 146 9 188 133 20 231 198 127 224 223 222 119 120 120 22 22 22 
+1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 3 3 3 95 95 95 179 180 180 234 234 234 237 229 207 203 181 131 192 156 83 
+188 133 20 159 120 9 170 114 5 182 124 9 182 124 9 182 124 9 183 127 3 187 136 3 
+198 139 9 198 139 9 217 155 7 217 163 7 223 165 7 223 165 7 223 165 7 223 165 7 
+216 159 5 204 146 9 198 139 9 175 125 4 155 102 4 120 77 2 91 61 1 15 12 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 58 43 7 120 77 2 170 114 5 183 127 3 
+200 140 3 206 148 3 216 159 5 216 159 5 221 159 7 216 159 5 217 155 7 204 146 9 
+198 139 9 182 124 9 190 146 50 218 210 190 146 149 148 7 7 7 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 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 45 47 47 109 109 110 159 166 168 
+226 227 227 248 248 248 218 210 190 203 181 131 192 156 83 148 102 14 148 102 14 148 102 14 
+155 102 4 170 114 5 182 124 9 183 127 3 187 136 3 198 139 9 198 139 9 198 139 9 
+187 136 3 182 124 9 170 114 5 155 102 4 130 96 8 104 68 5 58 43 7 8 6 3 
+73 73 73 141 142 141 179 180 180 203 203 203 208 207 206 213 213 213 213 213 213 219 219 219 
+234 234 234 235 235 235 236 237 236 235 235 235 236 237 236 239 239 239 234 234 234 240 240 239 
+224 224 224 225 224 224 217 218 217 131 131 131 58 43 7 120 77 2 155 102 4 170 114 5 
+182 124 9 183 127 3 198 139 9 200 140 3 200 140 3 200 140 3 187 136 3 175 125 4 
+155 102 4 192 156 83 230 228 223 85 85 85 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 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 35 35 36 81 79 75 104 104 104 146 149 148 208 207 206 233 231 230 214 199 171 
+162 157 129 148 102 14 130 96 8 148 102 14 155 102 4 170 114 5 170 114 5 155 102 4 
+155 102 4 155 102 4 130 96 8 120 77 2 104 68 5 91 61 1 167 167 166 233 231 230 
+172 176 175 88 88 88 43 43 43 12 12 12 8 8 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 20 20 20 179 180 180 162 157 129 91 61 1 120 77 2 155 102 4 
+170 114 5 170 114 5 175 125 4 182 124 9 182 124 9 170 114 5 155 102 4 130 96 8 
+203 181 131 197 197 197 35 35 36 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 0 0 0 
+
+0 0 0 0 0 0 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 2 2 2 1 1 1 1 1 1 22 22 22 73 73 73 
+131 136 135 192 192 192 230 228 223 162 157 129 107 93 64 104 68 5 120 77 2 130 96 8 
+130 96 8 120 77 2 104 68 5 91 61 1 91 70 38 224 223 222 123 123 123 7 7 7 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 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 43 43 43 228 228 227 91 70 38 91 61 1 104 68 5 
+120 77 2 130 96 8 155 102 4 155 102 4 155 102 4 120 77 2 107 93 64 214 199 171 
+172 176 175 7 7 7 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 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+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 24 24 24 111 114 112 218 210 190 218 210 190 141 122 119 107 93 64 
+107 93 64 91 70 38 107 93 64 175 172 168 249 244 230 109 109 110 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 0 0 0 0 0 0 0 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 88 88 88 246 246 246 175 172 168 145 135 65 
+91 70 38 91 61 1 58 43 7 91 61 1 107 93 64 163 157 151 237 229 207 109 109 110 
+4 4 4 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 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 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 0 1 1 1 0 0 0 65 65 65 145 140 129 163 157 151 
+175 172 168 218 210 190 197 197 197 141 122 119 18 18 18 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 0 
+0 0 0 0 0 0 0 0 0 0 0 0 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 35 35 36 95 95 95 146 149 148 
+197 197 197 221 221 221 231 230 229 235 235 235 187 186 186 123 123 123 12 12 12 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
diff --git a/abs/core-testing/tmp/logo_linux_mono.pbm b/abs/core-testing/tmp/logo_linux_mono.pbm
new file mode 100644
index 0000000..6a5e007
--- /dev/null
+++ b/abs/core-testing/tmp/logo_linux_mono.pbm
@@ -0,0 +1,883 @@
+P3
+80 80
+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 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 
+128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 
+0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 
+0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 0 0 0 128 128 127 
+0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 0 0 0 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 128 128 127 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 
+128 128 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 128 127 128 128 127 128 128 127 
+128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 128 128 127 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+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/abs/core-testing/tmp/logo_linux_vga16.ppm b/abs/core-testing/tmp/logo_linux_vga16.ppm
new file mode 100644
index 0000000..8b2d1ea
--- /dev/null
+++ b/abs/core-testing/tmp/logo_linux_vga16.ppm
@@ -0,0 +1,883 @@
+P3
+80 80
+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 36 26 8 102 124 121 157 146 143 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 214 202 162 157 146 143 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 157 146 143 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 214 202 162 232 232 232 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 214 202 162 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 44 44 44 0 0 0 
+0 0 0 44 44 44 157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 44 44 44 
+0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 118 110 50 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 36 26 8 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 
+102 124 121 44 44 44 36 26 8 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 44 44 44 157 146 143 157 146 143 157 146 143 157 146 143 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 157 146 143 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 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 254 0 0 0 0 0 0 36 26 8 157 146 143 157 146 143 
+232 232 232 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 214 202 162 214 202 162 232 232 232 232 232 232 214 202 162 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 250 246 233 0 0 0 0 0 0 102 124 121 214 202 162 232 232 232 
+232 232 232 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 232 232 232 232 232 232 157 146 143 214 202 162 232 232 232 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 254 254 254 0 0 0 0 0 0 102 124 121 157 146 143 0 0 0 
+44 44 44 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+232 232 232 214 202 162 44 44 44 0 0 0 102 124 121 102 124 121 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 44 44 44 44 44 44 
+102 124 121 44 44 44 232 232 232 157 146 143 0 0 0 44 44 44 36 26 8 102 124 121 
+232 232 232 102 124 121 0 0 0 0 0 0 44 44 44 0 0 0 232 232 232 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 232 232 232 44 44 44 0 0 0 157 146 143 102 124 121 0 0 0 
+0 0 0 44 44 44 214 202 162 157 146 143 36 26 8 36 26 8 36 26 8 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 44 44 44 214 202 162 0 0 0 
+0 0 0 36 26 8 188 146 47 227 174 11 227 174 11 226 188 8 227 174 11 188 146 47 
+226 177 55 118 110 50 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 232 232 232 157 146 143 
+44 44 44 223 156 6 188 146 47 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 226 188 8 188 146 47 118 110 50 118 110 50 232 232 232 254 254 254 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 0 0 0 44 44 44 226 177 55 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 102 124 121 0 0 0 36 26 8 118 110 50 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 157 146 143 102 124 121 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 157 146 143 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 226 177 55 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 188 146 47 223 156 6 223 156 6 188 146 47 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 232 232 232 232 232 232 157 146 143 0 0 0 36 26 8 118 110 50 188 146 47 
+223 156 6 226 188 8 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 
+226 188 8 188 146 47 188 146 47 188 146 47 188 146 47 223 156 6 188 146 47 36 26 8 
+36 26 8 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 157 146 143 232 232 232 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 44 44 44 118 110 50 118 110 50 
+118 110 50 223 156 6 226 188 8 226 188 8 226 188 8 188 146 47 226 188 8 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 
+36 26 8 0 0 0 0 0 0 44 44 44 102 124 121 44 44 44 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 157 146 143 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 214 202 162 157 146 143 
+118 110 50 188 146 47 188 146 47 223 156 6 188 146 47 223 156 6 188 146 47 188 146 47 
+188 146 47 188 146 47 188 146 47 188 146 47 157 146 143 214 202 162 214 202 162 214 202 162 
+102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 102 124 121 44 44 44 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 157 146 143 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 188 146 47 188 146 47 188 146 47 
+118 110 50 188 146 47 157 146 143 214 202 162 214 202 162 232 232 232 232 232 232 232 232 232 
+214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 0 0 0 
+232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 157 146 143 102 124 121 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 232 232 232 
+157 146 143 214 202 162 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 
+188 146 47 214 202 162 157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 232 232 232 
+232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 157 146 143 157 146 143 
+102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 232 232 232 
+232 232 232 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 157 146 143 214 202 162 
+157 146 143 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 102 124 121 232 232 232 
+102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 102 124 121 214 202 162 
+232 232 232 157 146 143 232 232 232 157 146 143 214 202 162 157 146 143 232 232 232 214 202 162 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 102 124 121 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 44 44 44 102 124 121 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 157 146 143 
+232 232 232 232 232 232 157 146 143 232 232 232 157 146 143 232 232 232 214 202 162 232 232 232 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 214 202 162 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 36 26 8 232 232 232 44 44 44 0 0 0 0 0 0 157 146 143 
+102 124 121 102 124 121 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 157 146 143 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+214 202 162 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 254 254 254 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 
+157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 250 246 233 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 157 146 143 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 118 110 50 102 124 121 102 124 121 
+102 124 121 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+214 202 162 232 232 232 214 202 162 232 232 232 254 254 254 44 44 44 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+232 232 232 44 44 44 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 232 232 232 157 146 143 
+102 124 121 102 124 121 214 202 162 214 202 162 232 232 232 214 202 162 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 0 0 0 157 146 143 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 102 124 121 157 146 143 44 44 44 0 0 0 0 0 0 0 0 0 
+44 44 44 157 146 143 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 
+44 44 44 0 0 0 214 202 162 232 232 232 157 146 143 232 232 232 102 124 121 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 44 44 44 44 44 44 
+157 146 143 157 146 143 157 146 143 102 124 121 157 146 143 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 102 124 121 
+44 44 44 0 0 0 157 146 143 232 232 232 232 232 232 214 202 162 232 232 232 36 26 8 
+0 0 0 36 26 8 102 124 121 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 202 162 
+44 44 44 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 102 124 121 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 157 146 143 
+157 146 143 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 214 202 162 102 124 121 
+0 0 0 0 0 0 157 146 143 232 232 232 232 232 232 232 232 232 157 146 143 102 124 121 
+102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 102 124 121 
+102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 157 146 143 102 124 121 
+157 146 143 157 146 143 157 146 143 157 146 143 102 124 121 102 124 121 232 232 232 254 254 254 
+254 254 254 254 254 254 232 232 232 157 146 143 157 146 143 157 146 143 102 124 121 44 44 44 
+0 0 0 0 0 0 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 44 44 44 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+44 44 44 44 44 44 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 102 124 121 
+102 124 121 102 124 121 102 124 121 44 44 44 36 26 8 0 0 0 44 44 44 255 255 254 
+254 254 254 232 232 232 36 26 8 44 44 44 102 124 121 44 44 44 44 44 44 44 44 44 
+0 0 0 0 0 0 0 0 0 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+157 146 143 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 232 232 232 254 254 254 
+254 254 254 255 255 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 254 254 254 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+214 202 162 44 44 44 0 0 0 0 0 0 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 250 246 233 254 254 254 254 254 254 
+254 254 254 254 254 254 255 255 254 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+254 254 254 0 0 0 0 0 0 102 124 121 232 232 232 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 102 124 121 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 232 232 
+44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+232 232 232 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 232 232 232 
+157 146 143 157 146 143 102 124 121 118 110 50 102 124 121 102 124 121 102 124 121 157 146 143 
+232 232 232 232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 232 232 232 
+214 202 162 102 124 121 102 124 121 44 44 44 102 124 121 44 44 44 102 124 121 102 124 121 
+157 146 143 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 
+157 146 143 0 0 0 0 0 0 102 124 121 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 254 254 254 250 246 233 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 
+214 202 162 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 157 146 143 232 232 232 
+157 146 143 0 0 0 0 0 0 157 146 143 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 232 232 232 214 202 162 226 177 55 
+226 177 55 36 26 8 0 0 0 157 146 143 254 254 254 254 254 254 254 254 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+102 124 121 0 0 0 36 26 8 44 44 44 44 44 44 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 157 146 143 214 202 162 227 174 11 226 188 8 226 188 8 
+226 188 8 223 156 6 118 110 50 102 124 121 254 254 254 254 254 254 255 255 254 255 255 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 
+232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 146 143 
+250 246 233 232 232 232 232 232 232 232 232 232 214 202 162 232 232 232 232 232 232 44 44 44 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 102 124 121 232 232 232 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 227 174 11 188 146 47 255 255 254 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+250 246 233 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 250 246 233 188 146 47 
+223 156 6 223 156 6 188 146 47 188 146 47 118 110 50 118 110 50 118 110 50 188 146 47 
+223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 255 255 254 255 255 254 255 255 254 
+255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 226 177 55 223 156 6 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 
+157 146 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+102 124 121 232 232 232 226 177 55 188 146 47 223 156 6 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 255 255 254 254 254 254 232 232 232 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 227 174 11 223 156 6 227 174 11 223 156 6 227 174 11 
+227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 226 177 55 
+232 232 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 214 202 162 232 232 232 
+214 202 162 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 232 232 232 226 177 55 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 188 146 47 
+250 246 233 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 102 124 121 250 246 233 214 202 162 214 202 162 226 177 55 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 177 55 255 255 254 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 157 146 143 157 146 143 223 156 6 223 156 6 
+223 156 6 223 156 6 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+214 202 162 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 102 124 121 232 232 232 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 214 202 162 
+255 255 254 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 214 202 162 188 146 47 118 110 50 188 146 47 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 223 156 6 188 146 47 
+226 177 55 232 232 232 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 214 202 162 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 177 55 
+250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 214 202 162 214 202 162 157 146 143 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 223 156 6 
+188 146 47 226 177 55 232 232 232 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+226 177 55 250 246 233 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 157 146 143 188 146 47 188 146 47 223 156 6 
+223 156 6 226 188 8 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 
+223 156 6 188 146 47 226 177 55 254 254 254 157 146 143 44 44 44 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+226 188 8 214 202 162 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 232 232 232 157 146 143 102 124 121 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 188 146 47 223 156 6 214 202 162 250 246 233 102 124 121 0 0 0 
+
+0 0 0 214 202 162 214 202 162 223 156 6 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 232 232 232 232 232 232 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 226 177 55 250 246 233 255 255 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 214 202 162 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 226 188 8 
+227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 214 202 162 214 202 162 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 226 177 55 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 102 124 121 0 0 0 0 0 0 36 26 8 36 26 8 188 146 47 223 156 6 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 223 156 6 223 156 6 226 177 55 232 232 232 0 0 0 0 0 0 
+
+0 0 0 157 146 143 214 202 162 223 156 6 223 156 6 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 214 202 162 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 
+36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 188 146 47 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 223 156 6 188 146 47 232 232 232 36 26 8 0 0 0 0 0 0 
+
+0 0 0 157 146 143 226 177 55 223 156 6 227 174 11 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 
+226 177 55 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 223 156 6 214 202 162 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 157 146 143 44 44 44 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 226 188 8 227 174 11 
+227 174 11 223 156 6 226 177 55 232 232 232 102 124 121 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 226 177 55 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 
+226 188 8 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+227 174 11 226 188 8 227 174 11 223 156 6 223 156 6 118 110 50 118 110 50 157 146 143 
+232 232 232 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
+232 232 232 232 232 232 157 146 143 102 124 121 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 118 110 50 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 226 188 8 226 188 8 226 188 8 227 174 11 226 188 8 
+226 188 8 227 174 11 226 188 8 227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 
+223 156 6 214 202 162 232 232 232 44 44 44 36 26 8 0 0 0 0 0 0 0 0 0 
+
+36 26 8 250 246 233 188 146 47 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 226 188 8 226 188 8 226 177 55 227 174 11 226 188 8 226 188 8 
+227 174 11 226 188 8 223 156 6 223 156 6 223 156 6 188 146 47 36 26 8 0 0 0 
+0 0 0 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 223 156 6 223 156 6 
+227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 227 174 11 
+227 174 11 226 188 8 227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 223 156 6 
+232 232 232 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+44 44 44 250 246 233 223 156 6 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 226 188 8 227 174 11 226 188 8 226 188 8 226 188 8 226 188 8 227 174 11 
+226 188 8 227 174 11 227 174 11 223 156 6 188 146 47 118 110 50 118 110 50 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 223 156 6 223 156 6 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 226 188 8 227 174 11 227 174 11 226 188 8 
+227 174 11 227 174 11 227 174 11 227 174 11 223 156 6 188 146 47 214 202 162 250 246 233 
+118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 232 232 232 214 202 162 226 177 55 118 110 50 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 227 174 11 
+227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 227 174 11 223 156 6 188 146 47 223 156 6 118 110 50 118 110 50 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 36 26 8 36 26 8 118 110 50 118 110 50 223 156 6 
+223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 227 174 11 
+227 174 11 223 156 6 223 156 6 223 156 6 214 202 162 232 232 232 102 124 121 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 102 124 121 157 146 143 250 246 233 214 202 162 214 202 162 188 146 47 
+118 110 50 188 146 47 118 110 50 223 156 6 118 110 50 223 156 6 188 146 47 223 156 6 
+188 146 47 223 156 6 223 156 6 223 156 6 227 174 11 227 174 11 227 174 11 227 174 11 
+223 156 6 223 156 6 223 156 6 118 110 50 118 110 50 118 110 50 36 26 8 36 26 8 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 188 146 47 188 146 47 188 146 47 
+223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 223 156 6 
+223 156 6 188 146 47 118 110 50 232 232 232 157 146 143 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 102 124 121 157 146 143 
+232 232 232 250 246 233 214 202 162 157 146 143 188 146 47 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 188 146 47 188 146 47 223 156 6 223 156 6 223 156 6 223 156 6 
+188 146 47 223 156 6 118 110 50 188 146 47 118 110 50 118 110 50 36 26 8 36 26 8 
+44 44 44 157 146 143 157 146 143 232 232 232 214 202 162 232 232 232 214 202 162 232 232 232 
+232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 
+232 232 232 232 232 232 232 232 232 157 146 143 36 26 8 36 26 8 118 110 50 118 110 50 
+188 146 47 118 110 50 223 156 6 223 156 6 223 156 6 223 156 6 188 146 47 223 156 6 
+118 110 50 188 146 47 232 232 232 118 110 50 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 36 26 8 118 110 50 102 124 121 157 146 143 214 202 162 232 232 232 214 202 162 
+188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 157 146 143 232 232 232 
+214 202 162 102 124 121 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 214 202 162 157 146 143 118 110 50 118 110 50 188 146 47 
+118 110 50 223 156 6 118 110 50 188 146 47 118 110 50 188 146 47 118 110 50 118 110 50 
+157 146 143 214 202 162 44 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 
+157 146 143 214 202 162 232 232 232 188 146 47 118 110 50 118 110 50 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 36 26 8 118 110 50 214 202 162 157 146 143 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 44 44 44 214 202 162 118 110 50 36 26 8 36 26 8 
+118 110 50 118 110 50 118 110 50 118 110 50 188 146 47 36 26 8 118 110 50 214 202 162 
+214 202 162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 
+0 0 0 0 0 0 36 26 8 102 124 121 214 202 162 214 202 162 118 110 50 118 110 50 
+118 110 50 118 110 50 118 110 50 157 146 143 232 232 232 102 124 121 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 102 124 121 232 232 232 214 202 162 188 146 47 
+36 26 8 36 26 8 118 110 50 36 26 8 118 110 50 157 146 143 214 202 162 102 124 121 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 36 26 8 44 44 44 157 146 143 157 146 143 
+157 146 143 214 202 162 214 202 162 157 146 143 36 26 8 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 44 44 118 110 50 157 146 143 
+232 232 232 214 202 162 232 232 232 232 232 232 214 202 162 157 146 143 36 26 8 0 0 0 
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+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/abs/core-testing/wireless_tools/PKGBUILD b/abs/core-testing/wireless_tools/PKGBUILD
new file mode 100644
index 0000000..cb68362
--- /dev/null
+++ b/abs/core-testing/wireless_tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+pkgname=wireless_tools
+pkgver=29
+pkgrel=2
+pkgdesc="Wireless Tools"
+arch=(i686 x86_64)
+url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
+license=('GPL')
+depends=('glibc')
+backup=('etc/conf.d/wireless')
+source=(http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz wireless.conf.d)
+md5sums=('e06c222e186f7cc013fd272d023710cb'
+         '027576534885b8d5dded9be546057b12')
+
+build() {
+  cd $startdir/src/wireless_tools.29
+  make || return 1
+  mkdir -p $startdir/pkg/usr/sbin
+  mkdir -p $startdir/pkg/usr/lib
+  mkdir -p $startdir/pkg/usr/include
+  mkdir -p $startdir/pkg/usr/man/man8
+#  make INSTALL_DIR=$startdir/pkg/usr/sbin/ INSTALL_LIB=$startdir/pkg/usr/lib/ INSTALL_INC=$startdir/pkg/usr/include/ INSTALL_MAN=$startdir/pkg/usr/man/ install
+  make PREFIX=$startdir/pkg/usr install
+  install -D -m644 ../wireless.conf.d $startdir/pkg/etc/conf.d/wireless
+}
diff --git a/abs/core-testing/wireless_tools/wireless.conf.d b/abs/core-testing/wireless_tools/wireless.conf.d
new file mode 100644
index 0000000..47540ef
--- /dev/null
+++ b/abs/core-testing/wireless_tools/wireless.conf.d
@@ -0,0 +1,12 @@
+#
+# Settings for wireless cards
+#
+# For each wireless interface declared in INTERFACES (in rc.conf), declare
+# a wlan_${IF} variable that contains the arguments to be passed to
+# iwconfig(8).  Then list the original interface name in the
+# WLAN_INTERFACES array.
+#
+
+#wlan_eth0="eth0 mode managed essid default"
+#WLAN_INTERFACES=(eth0)
+
diff --git a/abs/core-testing/wlan-ng26-utils/PKGBUILD b/abs/core-testing/wlan-ng26-utils/PKGBUILD
index e842c99..ecd8f14 100644
--- a/abs/core-testing/wlan-ng26-utils/PKGBUILD
+++ b/abs/core-testing/wlan-ng26-utils/PKGBUILD
@@ -1,13 +1,13 @@
 # $Id: PKGBUILD 7972 2008-08-05 11:03:19Z tpowa $
 # Maintainer: Tom Killian <tom@archlinux.org>
 
-pkgname=wlan-ng26-utils
-pkgver=0.2.9
+pkgname=wlan-ng26-utils-svn
+pkgver=r1870
 pkgrel=1
 pkgdesc="Wireless Lan userspace tools."
 depends=('glibc' 'bash')
 makedepends=('kernel26')
-source=(ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-$pkgver.tar.bz2 \
+source=(ftp://ftp.knoppmyth.net/R6/sources/wlan-ng26-svn-$pkgver.tar.bz2 \
 	wlan-ng.patch wlan kernel-2.6.26.patch)
 url="ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/"
 backup=(etc/wlan/wlan.conf)
@@ -15,9 +15,9 @@ arch=('i686' 'x86_64')
 license=('MPL')
 
 build() {
-   cd $startdir/src/linux-wlan-ng-$pkgver
-   patch -Np0 -i ../kernel-2.6.26.patch || return 1
-   sed -i "s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#" config.in
+   cd $startdir/src/trunk
+#   patch -Np0 -i ../kernel-2.6.26.patch || return 1
+   sed -i "s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#;s#PRISM2_USB=n#PRISM2_USB=y#;s#PRISM2_PCMCIA=y#PRISM2_PCMCIA=n#" config.in
    patch -p1 < ../wlan-ng.patch
    make auto_config
    make all || return 1
@@ -26,7 +26,7 @@ build() {
    rm -r $startdir/pkg/{init.d,lib,etc/pcmcia}
    install -m 755 $startdir/src/wlan $startdir/pkg/etc/rc.d/wlan
 }
-md5sums=('96130b36f9674521b08fb3e2a6ac0382'
+md5sums=('86af583059976c2f340e27911af49059'
          '706464f9e6e127558aed25b9f454f905'
          '1056365bdbe7102b1a668c84926ecb17'
          '6ed5a5fefc2c149e0e0a98de211ba147')
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base
new file mode 100644
index 0000000..f699813
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/dir-prop-base
@@ -0,0 +1,9 @@
+K 10
+svn:ignore
+V 31
+config.mk
+config.out
+TAGS
+tags
+
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries
new file mode 100644
index 0000000..2e39e94
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/entries
@@ -0,0 +1,420 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2008-08-17T16:54:15.152218Z
+1870
+pizza
+has-props
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+Configure
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+2d4b0dd69f0bfbef124e6844c426788d
+2008-08-12T13:33:16.679039Z
+1869
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13544
+
+LICENSE
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+b9e6db20793ea189ccb1c5b7d94a5916
+2000-02-07T19:26:25.000000Z
+295
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+30901
+
+add-ons
+dir
+
+scripts
+dir
+
+src
+dir
+
+THANKS
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+b7d5630c54bfef2b65788e13beafd89e
+2008-01-31T14:39:57.917675Z
+1846
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5618
+
+scm-moved-to-git
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+f913530834b8f4ffe87185b8461f39d8
+2008-08-17T16:54:15.152218Z
+1870
+pizza
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+265
+
+README
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+a546ece8522ec3bf4e5bc864647dbde3
+2004-01-30T15:47:49.000000Z
+1560
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+14061
+
+TODO
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+863e87fb1a04163b6131e8a42e0845fd
+2003-08-28T14:00:14.000000Z
+1505
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2925
+
+doc
+dir
+
+FAQ
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+2c44215bd548d3e96cb838c558efaeed
+2006-08-31T23:49:31.511061Z
+1798
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18346
+
+COPYING
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+d84599f48052fc213dfe049d2b0b81ea
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2495
+
+CHANGES
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+5f6a0f0322efc787d53c857188a857d1
+2008-08-12T12:52:10.542131Z
+1867
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+67660
+
+config.in
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+46402ad71b7dd5427f1b8337a4f28ee6
+2008-08-12T13:17:35.118175Z
+1868
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+331
+
+man
+dir
+
+etc
+dir
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+cba0590bf9634eac124a01bbf541a964
+2007-10-16T14:43:56.892846Z
+1837
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4621
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/CHANGES.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/COPYING.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Configure.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/FAQ.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/LICENSE.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/README.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/THANKS.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/TODO.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/prop-base/config.in.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base
new file mode 100644
index 0000000..f286bf6
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/CHANGES.svn-base
@@ -0,0 +1,1267 @@
+* CHANGES
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+ - Fix compiles with 2.6.26 (Pavel Roskin)
+ - Add compatibility with 2.6.27+ WEXT API (Pavel Roskin)
+ - Fix misplaced variable in PCMCIA code (Pavel Roskin)
+ - Add compatibility for gfp_t and mutex APIs (Pavel Roskin)
+ - Fix non-posix find arguments in script (Mark Mathews)
+0.2.9
+ - Reduce stack usage in prism2mib_priv (Richard Kennedy)
+ - WEXT functions should return -EBUSY when the hardware is still
+   being initialized (Richard Kennedy)
+ - Use round_jiffies wherever possible (Richard Kennedy)
+ - Disallow ioctls from running until the hardware probe function has 
+   finished.   (Richard Kennedy)
+ - Fix userspace scripts to work on Fedora 8 (Chris Rankin)
+ - Perform the hardware reset/init sequence *before* we register
+   the netdevice.  (Karl Renton)
+ - Always do an ifstate_disable before a firmware load cycle.
+ - Default to wireless extension mode.
+ - Make the SIWENCODE behaivor more closely match the spec. (Tormod Volden)
+ - Apply a patch from Karl Relton that improves USB reliability.
+ - When in wlan_wext_write=1 mode, auto-transition to ifstate_enable 
+   and bypass userspace firmware load altogether.
+ - Fix bug in the GIWENCODE handler (Richard Kennedy & Tormod Volden)
+ - Support 2.6.24 kernels (modified patch from Tormod Volden)
+ - Support 2.6.23 kernels. (With apologies to Martin Dauskardt for a 
+   misapplied patch)
+ - Support "Intersil Americas USB 802.11b WLAN DEVICE" (Peter Levart)
+ - Tweaks to support Fedora 7 (Dan Williams)
+ - Support 2.6.22 kernels
+0.2.8
+ - Fix up a pile of sparse warnings (Pavel Roskin)
+ - Support 2.6.20 kernels (Pavel Roskin)
+ - Tweaks to the udev rules (Richard Kennedy)
+ - Silence a large pile of warnings with GCC4.1
+ - pt_regs is gone for USB as well on 2.6.19+ (Chris Rankin)
+ - Large WEXT patch that allows use of NetworkManager. (Richard Kennedy)
+0.2.7
+ - Fix license text in prism2dl.c (it is in fact MPL/GPL)
+ - Fix oops in wext_autojoin (Richard Kennedy)
+ - Report use of dBm for WEXT requests (Richard Kennedy)
+ - Configure script better handles PREEMPT kernels (Chris Rankin)
+ - 2.6.19+ uses a different IRQ handler function prototype.
+ - linux/config.h is no more on 2.6.19+ kernels.
+0.2.6
+ - Fix another error that affected <2.6.15 builds on some compilers
+ - Fix a cut-n-paste error that broke 2.6.18 builds.
+0.2.5
+ - 2.6.18-rc fixes.
+ - A few tweaks for Wireless-Extensions-21
+ - Fix an interrupt-related race that could lead to a crash on shutdown.
+ - Tweaks to the prism2_usb code to improve suspendability on 2.6.15+
+ - Silence many warnings under GCC 4.1
+ - prism2_cs support for 2.6.16+ (untested)
+ - Makefile fixes for 2.6.17+ 
+ - udev support for USB targets (Richard Kennedy)
+ - semaphores are deprecated as of 2.6.16 (Chris Rankin)
+ - prism2_usb build fix for 2.6.16
+ - Patches from Debian (via Victor Seva)
+   - Fix bugs in /etc/wlan/shared, including a security hole
+   - Fix build on 2.4.27 kernel
+   - Added man page for prism2dl
+ - Generate a WEXT Event when we gain/lose association.
+ - Make prism2_defer query ssid and bssid, as IBSS mode has this change.
+ - Clean up prism2_defer_timer a bit.
+ - Propogate linkstatus into p80211, and make ethtool aware of it.
+ - Eliminate wland and entire indication infrastructure.  If you want to
+   play with it, use 0.2.4.  We can put it back in if necessary.
+0.2.4
+ - USB Build fix from Chris Rankin.
+ - Add ability to install prism2 firmware seperately. (Petteri Raty)
+ - Theoretically the per-frame signal/noise figures are now in dBm.
+0.2.3
+ - WEXT 16+ fixes, which came to a head with v2.6.14+ kernels.
+ - Fix a circular symbol dependency glitch
+ - Fix a potential panic when receiving unknown CONTROL frames.
+ - get rid of p80211frm.c entirely; it's all unused code.
+ - Fix prototype for pci_suspend functions to match 2.6.11+ APIs.
+ - Build fixes for 2.6.14+
+ - Change the type of 'request_pending' to take care of warnings.
+ - Fixes for warnings generated by the 'sparse' tool (Richard Kennedy)
+ - Add an explicit README.firmware containing copyright information 
+   on the firmware images.
+ - Compile fixes for 2.6.8 (Victor Seva Lopez)
+0.2.2
+ - Fix an array overflow in the hotplug helper function.
+0.2.1-final
+ - Added in-kernel devicetable for 2.6.13+ pcmcia 
+ - Updates to bring prism2_cs into the newer 2.6 kernel APIs. 
+ - Fixes in the hotplug invocation with WEXT (Pavel Roskin)
+ - Experimentally try using usb_reset_device on 2.4 kernels too
+ - use usb_reset_device() on 2.6 kernels (Andreas Schulte)
+ - Included kludged 1.8.4 PCI/PCMCIA firmware (Pavel Roskin)
+ - PCMCIA card Ident fixes to coexist with orinioco driver (Pavel Roskin)
+ - Ignore unexpected ctlx responses. (Chris Rankin)
+ - Fix an off-by-one in scan results.
+ - Change some log priorities
+ - [usb] Fix a memory leak (Chris Rankin * Eroc Koenders)
+ - [usb] clean up the PDA Read function a bit. (Chris Rankin)
+ - [usb] Don't overwrite current CTLX URB before we're done with it. 
+   (Eric Koenders & Chris Rankin)
+ - Fix a byte-order problem when parsing scan results (Eroc Koenders)
+ - Added a mib item (lnxRSNAIE) to get/set the WPA/RSNA IE.
+ - Applied a patch from Chris Rankin which should solve the hangs with 
+   kernel preemption turned on.
+ - Cleaned up some compile warnings with GCC 3.4.x
+ - Add a background thread to fetch comms quality from hardware.
+ - Fixed a series of bad memsets in prism2dl
+ - Added id for Viewsonic USB widget (Ekin Meroglu)
+ - Eliminate the extra frame copy in the usb rx path.
+ - When issuing a start/join, set MACMODE to none as to disable 
+   transmits through the hardware.
+ - Get rid of the prism2_pci/plx 2.2.x compatibility code (Pavel Roskin)
+ - Change default behaivor of top-level Makefile (Pavel Roskin)
+ - Get rid of the #ifndef DECLARE_TASKLET cases; 2.4+ supports it.
+ - Fetch the BSSID when we get an AP_CHANGE event
+ - netif_carrier_off/netif_carrier_on at appropriate times
+ - Hook up the dot11CurrentTxPowerLevel MIB in the prism2 code.
+ - Add a default TMPDIR in case it isn't set.
+ - Removed some 2.2.x cruft
+ - CommsQuality now does the right thing with dBm values.
+ - More makefile work from Pavel Roskin
+ - A major USB patch from Chris Rankin.  This rewrites the 
+   command-queueing code to something considerably more sane.
+ - A few more Makefile tweaks
+ - Further compile warning fixes on 64-bit targets (Pavel Roskin)
+ - Fix prism2_cs on 64-bit targets (Pavel Roskin)
+ - Fix the 2.4 build (whoops)
+-pre26
+ - Fix the "no hardware found" bug in 2.6.10+ kernels
+ - Cleanups in the Makefiles and build system
+ - Fix a typo in the shared.prism2 script (Chris Rankin)
+ - Clean up build warnings with gcc 3.3 (and possibly older too)
+ - Fix a nice race condition on device registration. 
+ - Don't stop the netdev when we hit ifstate_disable.
+ - hw->state wasn't being set properly on drvr_stop, nor were we 
+   clearing the port status in all cases.
+ - Fix the "Debug: sleeping function called from invalid context"
+   under 2.6 with prism2_usb (Chris Rankin)
+ - Wireless extension SCAN support (Dan Williams)
+ - 2.6 sysfs support in the form of SET_NETDEV_DEV (Dan Willimas)
+-pre25
+ - Fix a brown-paper bag bug in the register_wlandev code. (Giacomo Lozito)
+ - Patch for the Sitecom WL-022 widget (Armijn Hemel)
+ - Build fix for ancient ETHTOOL versions
+ - build fix for old 2.4.x kernels
+-pre24
+ - Fix build on 2.6.10-rc
+ - Fix USB build on 2.6.x (x < 7)
+ - Suspend the USB driver cleanly (Colin Leroy)
+ - Fix more USB badness (Colin Leroy)
+ - scan_timeout WAY too long. (Wolfram Gloger)
+ - dev_get is no more, as of 2.6.10-rc2 -- switch to dev_alloc_name 
+   instead, which is present in older kernels. (reported by Colin Leroy)
+-pre23
+ - Fix badness in 2.6.10-rc1 (Colin Leroy)
+ - Compile fix for 2.6.9-rc4+ (Jeff Chua)
+-pre22
+ - Add support for x86-64 (and possibly other 64-bit targets) (J.D. Cole)
+ - Fix linkstate if driver reset without unloading. (Shiro Ninomiya)
+ - Rename the man pages to have a .1 extension
+ - Tweak the Configure script; change the default kernel build directory
+ - put a 'sleep 1' in the firmware load sequence to improve reliability.
+   (Arnold Liu)
+ - Add Linksys WUSB11 card ident
+-pre21
+ - Add a per frame rx structure for OOB data to be passed to p80211
+	This is a step in the right direction for a major overhaul of 
+	internal frame representation.  The prism2 driver shouldn't care 
+	about sniff headers or any of that crap; it should always pass
+	everything to p80211  (via this metadata) and the p80211conv_* 
+	functions should do that work.  It's also needed to eventually
+	support different encryption types.
+ - Added in beginnings of IWSPY support via patch from Josef Kriegl
+ - Install modules to $MOD_DIR/linux-wlan-ng instead of $MOD_DIR/kernel
+ - Primary/Secondary firmware (finally) bundled with the driver.
+ - Convert to newer 2.6 module parameter code.
+ - Fix an inverted test in GIWENCODE wireless extension (Shiro Ninomiya)
+ - Minor script fix for SSF cards (Pavel Roskin)
+ - Card idents.
+ - Fixes for SSF PCI cards; default to x16 SRAM as that's more common.
+   (download script now automatically detects hardware type)
+ - Fix script problems that result in a failed init returning success.
+ - Fix an endian-ness buglet in prism2sta.c (Federico Pellegrin)
+ - Compile fixes for 2.2.x kernels. (no tasklets or spin_lock_bh)
+ - Fix up pci resources on card init failure on plx card.
+-pre20
+ - Fix up pci resources on card init failure
+ - Ident for "ROPEX FreeLan 802.11b USB Adapter" (Francesco Bochicchio)
+ - ETHTOOL support now optional, fixes build on older kernels.
+ - Fix prism2dl to not use kernel headers to fix 2.6.3 build (Pavel Roskin) 
+-pre19
+ - Add a 'lnxind_roam' indication.
+ - minor typo in the nwepgen makefile (Pavel Roskin)
+ - More makefile fixes (Pavel Roskin)
+-pre18a
+ - brown-paper-bag fix for the 2.4 build.  And it no longer builds on 
+   2.2 thanks to an accidental makefile commit.
+-pre18
+  - Fix broken makefiles so that prism2dl and the rc script install
+  - Get rid of the txfid lock, it's not necessary.
+  - Tasklet-driven RX handlers.
+  - Further work towards a Wireless Extension-enabled future.
+    - SIWFRAG, SIWRETRY, SIWFREQ, SIWRTS implemented
+    - SIWENCODE, SIWESSID taken from zdsta-1.0.3 (needs work)
+    - SIWCOMMIT Implemented ala autojoin.
+    - write support defaults to disabled, override via module parameter
+  - fix a warning in the wireless extension code.
+  - hfa384x.h header updates
+  - Fix prism2dl to handle the S7 record being elsewhere in the image.
+    (Pavel Roskin)
+  - Fix up brown paper bag script error for SSF hardware.
+-pre17
+  - Spruce up the GIWNAME wireless extension ioctl. (Natsakis Konstantinos)
+  - Added in basic ethtool support; for link status reflection.
+  - Fixed a double-locked spinlock which deadlocked on SMP boxes.
+  - /proc/net/p80211/wlanX/nsd now has useful information about the
+    prism2 hardware/firmware revisions.
+  - eliminate the unused 'collptr' from the mib structures.
+  - Fix a bug with the pcmcia script and scanning (Dan Noe)
+  - Fix a crash on a VCC mismatch.
+  - Split out most pci/plx/pcmcia/usb specific code into their own .c files.
+  - Make prism2_cs build on 2.6.2-rc
+  - Changes to support SSF hardware.
+  - Card ident for D-Link DWL-650P1
+  - Move the prism2 link notification handler operate in scheduler 
+    context to avoid a hang in softirq context.
+  - Melco WLI-USB-KB11 USB widget added (Bela Fenyvessy)
+  - Add in x86-64 support, plus other cleanups in wlan_compat.h
+  - Support the Netgear MA311 PCI card.  (Steve Berry)
+-pre16
+  - Implement wireless extension SETCHANNEL. (SIOCSIWFREQ)
+    - Currently broken.  :)
+  - Fix several sniffing-related bugs:
+    - disable when we're already disabled
+    - no longer perform a full h/w reset when we're already enabled
+    - Vastly reduce CPU usage on channel hop.
+  - Fix a crash on unload for pci/plx widgets (Pavel Roskin)
+-pre15
+  - Minor fix for the shared script (Jeff Chua)
+  - fix "bad: schedule while atomic" bug introduced by recent 2.6.0-test 
+    kernels and wireless extensions.
+  - Switch to using spin_[un]lock_bh for the cmdlock; this way we 
+    disable the transmit bh from running while issuing a card command.
+    Also have the txframe function obtain the lock.
+  - Hawking HighDB USB Widget (Allan Claghorn)
+  - Fix a double-lock in hfa384x_cmd_notify
+  - Identity for "T-Sinus 111 USB WlAN Adapter" (Roman Koutny)
+  - Fix up alignment problems on frame rx. (Ranjit Deshpande)
+-pre14
+  - Update the HAS_HOTPLUG test to something considerably more foolproof
+  - Add ids for the Airvast Prism3 USB widget
+  - bap locking was broken when illegal parameters were passed. (Andre McCurdy)
+  - Don't use jiffies for timeouts when interrupts are disabled. (Andre McCurdy)
+  - Make the Configure script a little saner.
+  - Remove the Zydas 1201 USB widget.  Use the Zydas modified 
+    linux-wlan-ng release instead (we hope to merge it in eventually)
+-pre13
+  - Fix two big-endian bugs in the scan code.
+  - Hotplug agent executes '/sbin/ifup INTERFACE' if possible.
+  - Planex GW-US11H USB adaptor (Henry Ip)
+  - Averatec USB Wlan Adapter (Stephan Miller)
+  - D-Link DWL-122 USB widget (Andrew Beresford)
+  - ASUS-WL140 Wireless USB widget
+  - Fix the WLAN_LOG_NOTICE macro for gcc 2.95.x
+-pre12
+  - Fix up endian bugs in lnxerq_commsquality.
+  - Get rid of the pcmcia release timer for >2.6.0-test5
+  - Card ident for 'ZyDAS ZD1201 Wireless USB Adapter' (Albert Pauw)
+  - More tweaks for 2.6.0-test4
+  - fix some bash-isms in /etc/wlan/shared (Daniel Song)
+  - Collapsed the BOUNDEDINT and INT types into one.
+  - Eliminated the WLAN_LOG_***0() macros at long last thanks to CPP 
+    trickery.  Also eliminated more cruft from wlan_compat.h
+  - Card ident for the Samsung SWL-2210P PCI card
+  - Try not to schedule a USB endpoint reset if there's one already 
+    pending. (Chris Rankin)
+  - Fix pci/plx operation on architechures with >32bit physical address 
+    sizes. (namely mips64 & some mips32)
+  - get rid of save_flags/cli/restore_flags in prism2_cs on >2.2 builds
+    (tweaked from patch by Pavel Roskin)
+  - pci_device_id tables should not be marked __devinitdata
+-pre11
+  - support genesis mode for RAM download of primary fimware
+  - prism2_usb now builds on 2.5/2.6.  
+    - endpoint numeration removed.
+    - hfa384x_usb_corereset unimplemented for 2.5/2.6
+  - hfa384x.h updates.
+  - p80211conv_* functions should work with netdev->mtu, not MAX_ETHFRM.
+  - Simply erase the bogus '3rdparty' drivers on Mandrake systems.
+  - Card idents for Adaptec AWN-8030/AWN-8020, and Netgear MA111
+  - Strip out all 2.2.x stuff from prism2_usb, it doesn't work.
+  - add proper __devinit/__devexit/etc tags to prism2sta.c
+  - Minor USB janitorial patch from Chris Rankin.
+  - Make most card commands require superuser access (exception is 
+    mibget)  (Original patch by Pavel Roskin)
+-pre10
+  - Make the wakeup flag in the usbctlx structure volatile, as well as 
+    other wait condition variables.
+  - Make the rx_urb buffer dynamically allocated so we can re-post the 
+    URB as soon as possible.
+  - Get rid of completion.h
+  - More wlan_compat updates.
+  - Disable TXEX reporting on USB as well as TXOK.  should improve
+    stability a tad.
+  - Further 2.5 USB work.  Not quite there yet.
+-pre9 
+  - Properly initialize the prism2_cs release timer (Pavel Roskin)
+  - Eliminate the CONFIG_ISA requirement for prism2_cs (Pavel Roskin)
+  - netlink build fixes for 2.5.71
+  - Hopefully fix the 2.2.x build.
+  - More USB fixes (Chris Rankin)
+  - Compile fixes for < 2.4.20
+-pre8
+  - Fix the pcmcia breakage introduced in -pre2.  
+  - On USB widgets, only signal txcomplete if there was a tx error.
+  - Minor cleanups in the PCMCIA code.
+-pre7
+  - Add in the 'JVC MP-XP7250" USB Widget.
+  - Don't call ev_alloc on tx_complete event; only the tx urb completion.
+  - Minor tweaks to tx_timeout code
+  - More USB updates; primarily with error-handling.  (Chris Rankin) 
+-pre6
+  - On USB transmits, don't return 'success' if the tx_urb is still
+    pending.  Also don't wake the netdev queue if the tx fails.
+  - Hook up the tx watchdog timer and add a p80211-level handler.
+  - Fix compilation with older (<= 2.4.18) kernels.
+  - Another massive USB+other patch from Chris Rankin:
+    - a separate list for "finished" CTLX objects.
+    - correct (hopefully!) handling of -EPIPE errors, shamelessly copied
+      from^W^Winspired by David Brownell's usbnet driver.
+    - finished support for asynchronous commands, with proper tracking 
+      through the CTLX lifecycle, clean-up etc. Each asynchronous command now 
+      completes in its own tasklet.
+    - CTLX cancellation and error handling.
+    - further work on the timers and spin locks.
+    - clean up setconfig16() and setconfig32() functions so that they 
+      take appropriate value parameters, even if the underlying 
+      setconfig() commands don't.
+    - use an asynchronous command in setmulticast(). (CS, PCI and PLX 
+      are still synchronous; they just pretend not to be.)
+    - further clean up in the disconnect() handler. However, it's still 
+      not a good idea to remove the adapter while the 
+      prism2sta_inf_hostscanresults() function is sleeping, and the wlandevice
+      struct could easily have been freed before the p80211req_dorequest() 
+      function manages to clear the request_pending bit. It would be 
+      nice if we could cancel both of these operations when we call 
+      prism2sta_ifstate(P80211ENUM_ifstate_disable). 
+    - extra support for Linux 2.5 (task queue -> work queue).
+    - reset the link status when we stop the driver.
+  - Some work on module locking.  Not there yet, but getting better.
+  - Remove magic numbers from USB endpoint probe (Chris Rankin)
+  - Eliminate useless timer in p80211do_request, as all calls are 
+    synchronous.  Also clena up more function pointers, and a few other 
+    doodads. (Modified from patch by Chris Rankin)
+  - Track the current SSID in the wlandev; Make the WEXT stuff key from 
+    this.  Update the SSID when we get a linkstatus_connect notification.
+  - A couple of misc cleanups from Chris Wilson
+  - Cleanups in the 2.5 makefile code. (Pavel Roskin)
+  - Add in another PCI device ID, to handle Sony VAIO PCG-V505AP
+  - Make sure CONFIG_ISA is enabled for the prism2_cs build. (x86 only)
+-pre5  
+  - Get rid of generic manfids in  /etc/pcmcia/wlan.conf (Pavel Roskin)
+  - Fix the 'make install' target.
+  - only call flush_scheduled_tasks() if DECLARE_TASKLET not defined.
+    (fixes 2.5.x compile)
+-pre4
+  - More script work; mostly cleanups and other enhancements. 
+  - Substantial prism2_usb patch from Chris Rankin.
+    - using 2 Linux lists for CTLXs
+    - remove race condition and double-free with CTLXs in disconnect()
+    - initialise URBs correctly (vital for Linux 2.5+)
+    - separate callbacks for data/CTLX OUT URBs
+    - flush task queue on shutdown
+    - more thorough use of spinlocks with CTLXs
+    - set the ASYNC_UNLINK flag when it is time to unlink an URB 
+      asynchronously, and not before.
+    - ensure we stop submitting URBs once the disconnect function 
+      is called.
+  - More USB idents (Jeff Chua)
+  - Scan now uses active scans only; should speed things up a bit.
+  - Proper module init/cleanup in prism2sta.c, plus more work for 2.5.69
+  - Added in descriptions for module parameters.
+  - Major overhaul of the hotplug stuff.  Now we use our own hotplug
+    event class, and use that to kick off configuration and whatnot.
+    All device types (pci/plx/pcmcia/usb) now use this mechanism.
+    Also brings us things like unified power management (suspend/resume)
+  - Supress spurious output when setting WEP parameters.
+  - Only query PrivacyOptionImplemented if wep was enabled in the config
+    Works around an apparent firmware bug, see http://bugs.debian.org/190851
+  - Eliminate hw->name.  
+  - Card ident for NL-2511CD Plus pcmcia card.
+  - Minor tweak on pcmcia removal.
+  - Fix the USB compile on <2.4.20
+-pre3
+  - get rid of wlandev_get_index and whatnot.
+  - URB cleanup in the USB code.  (Chris Rankin)
+  - Moved host auth sequence out of interrupt context.
+  - USB paranoia checks (Chris Rankin)
+  - Partial rewrite of the USB shutdown sequence
+  - eliminate wlandev->hwremovedfn().
+  - Minor tweaks to the mib.
+  - Get rid of the horridly outdated skeleton driver.
+-pre2  
+  - Fix a crash-on-unload affecting pci and plx adapters
+  - have the init script load the module if needed.
+  - Handle the new 2.5.69+ irq handler semantics
+  - Fix 2.5 with pcmcia (Pavel Roskin)
+  - Massive cleanup of the prism2/driver/Makefile (Pavel Roskin)
+  - Don't wrap the [un]register_netdevice() calls in rtnl_[un]lock()
+    And use the [un]register_netdev() calls instead.
+  - Call the hwremoved() functions on pci/plx_remove
+  - Eliminate the prism2sta_priv_t structure.
+  - Fix a memory leak on ifstate_disable
+  - Minor changes to the USB driver
+  - Widget id for "Melco WLI-USB-KS11G" (Ichiro Doi)
+  - Function pointer syntax cleanup (Chris Rankin)
+  - Push the multicast/promisc set into the prism2 driver.
+  - Move type/multicast filtering into the p80211 layer.
+  - Format fix for p802addr_to_str (Pavel Roskin)
+  - Add a check for non-Intersil firmware.
+  - Fix a infinite recursion in the usb lowlevel code. (Chris Rankin)
+-pre1
+  - Header updates.
+  - Add a card ident for the USR 1120 USB widget (Juan Conde)
+  - Cleaner shutdown; fixed a possible leak and a race condition.
+  - Another rearrangement of the command locks, to eliminate use of the
+    spin_is_locked() call.
+  - Fix a rare deadlock with cmd_initialize (Pavel Roskin)
+  - Add a Lucent-compatible key-generator in add-ons/lwepgen
+  - Fix a stack overflow problem. (Pavel Roskin)
+  - Further monitor mode fix for control frames (Pavel Roskin)
+  - Cleanups in the dependency generation code
+  - Initial 2.5 support.  USB currently broken.
+  - Minor build system cleanups.
+0.2.0
+  - Use PSUEDOIBSS mode for monitor mode; this should eliminate spurious
+    beacon generation.  (Ryan Veety)
+  - Don't drop "unrecognized" frame types in monitor mode.
+  - Added ident for the Linksys WUSB12 (Brad Davidson)
+  - Eliminated most of the WLAN_LOG_???n macros.
+  - Minor fixups in /etc/wlan/shared
+  - Cleaned up some of the error messages in the conversion code.
+  - changed the "Host de-WEP failed" error to a debug message, as the 
+    /proc/net/wireless stats are updated to reflect undecryptable frames
+-pre10
+  - Added the p2TxPowerMax MIB item to specify the TxPower level.
+    0-30 dBm.  Needs STA>=1.7.0 or AP>=1.4.0.
+  - Clean up some spurious warnings in prism2sta.c (Pavel Roskin)
+  - A series of patches from Pavel Kankovsky, somewhat tweaked.  :)
+    - Properly set skb->mac.raw in non-monitor mode
+    - Enhancments to the p80211 frame conversion code
+    - Handle A4 frames.
+    - Don't issue linkstatus notifications in monitor mode
+    - Supress Linkstatus messages in monitor mode
+  - hfa384x.h updates for latest firmware.
+-pre9
+  - ZyXEL ZyAir B200 Wireless USB widget ID added (Paul Lacatus)
+  - Only enable interrupts in one place (hfa384x_drvr_start)
+  - Fix the startup scripts to disable WEP completely if not enabled.
+  - ALLNET 0193 USB widget ID (Kurt Huwig)
+  - Disable the hfa384x port before issuing the autojoin stuff.
+  - Fixed a subtle flaw in the 802.11->802.3 conversion code.
+  - Updates to hfa384x.h
+  - Add productinfo for dlink DRC650 from Petr Slansky.
+  - Minor changes to the rfmon code.
+  - Only notify us on linkstatus changes if it actually changes.
+  - Fixed the path the manpages were installed to.
+-pre8
+  - Properly reset the hardware state after a flash/ram download.
+  - Patch to allow escaped characters in the scan list (Derek Atkins)
+  - Re-added the txfid queue locking which somehow got dropped.
+  - Added DellTrueMobile 1180 USB ident. (Michael Hackett)
+  - Changed linkstatus messages to INFO level reporting.
+  - Ident info for the Intel Anypoint II 802.11b PCMCIA card.
+  - Added support for the SH architechure and many changes necessary for
+    2.5 support.  Modified from the patches by Ryan Veety.
+  - Compile fixes for 2.2.x introduced as part of the new hotplug support.
+  - Added man pages contributed by Joey Hess
+  - Add ident info for the Z-Com 725/726 USB Widgets.
+  - Fixes to silence GCC 3.2 warnings. (Pavel Roskin)
+-pre7
+  - Patch to fix int array mib manipulation.  (Pavel Roskin)
+  - Minor improvements to the build system.
+  - Moved RX processing to a bottom half instead of hard irq context.
+  - Further script improvements:  signal strength filtering, and some 
+    space handling stuff.  The latter is not complete yet.
+  - lnxreq_commsquality wasn't setting the status field properly on the
+    response messages.  
+  - Workaround for spurious interrupts generated before initialization
+    is complete. (Clay Jones)
+  - hotplug script now invokes 'ifup $DEVICE' if present.
+  - Minor cleanups (Pavel Roskin)
+  - Tenative SPARC support. (Olivier Bornet)
+  - After leaving monitor mode, disable the port if we had to enable it.
+  - Updates to hfa384x.h
+-pre6
+  - Further script enhancements; automatically use scan mode on hardware
+    that is known to support it properly.
+  - Fixed errors in the hotplug script, and other misc fixes.
+  - 2.2.x fixes for the new proc stuff and deferred processing stuff.
+  - Add support for the new sniff frame capture. (doc/capturefrm.txt)
+  - Get rid of some bitrot with the sniffing code.
+  - Populate the tx dropped frames statistics.
+-pre5
+  - Fixes for host scan when not currently joined.
+  - /proc support; some informational stuff is kept in /proc/wlandev/wlanX
+  - Complete rewrite of the configuration files and startup scripts.
+     hotplug(pci+usb), pcmcia, rc, everything uses same config file(s).
+     per-network configuration
+     supports scanning and automatically choosing a network from a set.
+  - Fix the TMD7160/ncp130 support so it acually works.  :)
+  - Make the BUG() call in cmd_access enabled only in debug builds.
+  - Minor makefile fixes.
+  - Microsoft MN520 PCMCIA ident info added.
+  - p2cnfShortPreamble is not a boolean value.  (Clay Jones)
+-pre4
+  - BAP access fixes for PCI platforms.  This mostly affects SMP 
+    arrangements.
+  - Back out W200 USB ident info; it's not prism-based.
+  - Patch from Tom Prado to make 'keygen' more user-friendly.
+  - bap_timeout parameter only valid on non-usb platforms
+-pre3
+  - Added Ident info for the USB Compaq/Intel W200 widget
+  - dot11req_scan requires firmware >=1.3.2.
+  - Added the "Acer Warplink USB Adapter" id.
+  - Rework the prism2sta_inf_linkstatus call to defer processing of
+    results until outside interrupt context.  Should fix the SMP
+    deadlocks seen on some machines.
+  - Rework the usb_disconnect code to hopefully alleviate the occasional
+    crash-on-disconnect some people see.  Solution is not SMP-safe yet.
+  - Add the D-Link DCF-660W ident info.
+-pre2
+  - New parameter, 'prism2_bap_timeout' to specify the timeout on
+    bap setup.  timeout*10 == timeout in microseconds.  Note that this
+    timeout occurs in spinlock context, so increasing it arbitrarily is
+    BAD!  Defaults to 1000, ie 10000us.  
+  - compile fix for prism2sta in debug mode.
+  - Only prompt for pcmcia sources if we're using non-kernel pcmcia.
+    (original patch by Beat Bolli, rewritten a bit..)
+  - Add the Linksys WCF12 CF ident info.
+  - A bunch of compile fixes for older versions of wireless extensions.
+  - Added implementations of GIWTXPOWER and GIWRETRY
+  - Some fixes to the wireless extension code (thanks to Jean Tourrilhes)
+-pre1
+  - wland was incorrectly using kernel headers in its compile. 
+  - Adhoc mode was auto-roaming onto "any" SSID.  Fixed.
+  - Implemented the dot11req_scan & dot11req_scan_results functions.
+      This, combined with more intelligent startup scripts, will allow
+      you per-network profiles.   Scripts are unwritten as yet.  :)
+  - hfa384x.h and MIB updates.
+  - Rewrote the wireless extension support code; moved to p80211 layer.
+      Now we're compatible with at least v6-v14, and everything
+      inbetween.   We hook up to the new iw_request structure, which
+      makes further wireless extension support much easier to add.
+  - Add the Microsoft MN510 USB device ID.
+  - Finally fix the 'crash on unload' problem for 2.2.x kernels with PCI.
+    Turns out the kcompat24 code wasn't quite complete.  (Matthew Rush)
+  - Cleaned up our usage of __FUNCTION__ to make gcc 3.x happy.
+  - Fix a typo in the prism2 makefile.  
+0.1.15
+  - Fix an obscure PCMCIA build problem. (modversions disabled but
+    header present, and using non-kernel pcmcia)
+-pre8
+  - Added code to optionally truncate packets in monitor mode. (Clay Jones)
+  - Fix a polarity problem with the stripfcs argument to monitor mode.
+  - Add a test to make sure wireless.h is included.
+  - Netgear MA401A card ident.
+  - Further cleanups of the build system (Makefiles)
+-pre7
+  - Include wireless.h so wireless extensions work again.  :)
+  - Work around the braindead RedHat kernel build system.
+  - Fix a class of unaligned accesses in the message structures 
+    (kernel driver) and user space parsers (wlanctl-ng, etc)
+  - Fix an unpacked struct problem that affected ARM platforms
+    (thanks to Clay Jones for spotting this one)
+-pre6
+  - Support the new auto-unknown mode present in firmware >1.3.3
+    When issuing an autojoin, we try to join a BSS, then an IBSS, and if
+    all fails, we create a new IBSS with the given parameters. 
+ 	*note*  currently disabled.
+  - Updates to hfa384x.h to reflect latest documentation
+  - Build system mini-enema.  Automagically detect kernel version,
+    pcmcia status, and modversions.  Pick up the kernel compile flags.
+  - Hopefully fixed the 'crash on unload' for 2.2.x kernels and PCI.
+  - 'p2req_join' command, see doc/wlanctl-ng.p2req_join.txt 
+    This lets you join a specific SSID.  Thanks to Clay Jones.
+  - A couple more pcmcia/cf card idents
+  - More deletions/fixes in wlan_compat.h
+-pre5
+  - Due to new hotplug code, atmel device detection removed
+  - Further cleanups in wlan_compat.h and non-kernel makefiles
+  - Debian package stuff yanked in favor of the "official" deb packages
+  - Rearranged the wireless extension support code a bit
+  - A fix for the promisc/allmulti stuff on USB devices
+-pre4
+  - Hotplug support for PCI/PLX/USB widgets
+  - A compile fix for 2.2.x (x < 18) kernels and PCI adapters
+  - Support for TMD7160-based "almost but not quite PLX" boards
+  - HP-PA support.  In theory.  Anyone care to test?
+  - pcmcia script cleanups
+  - Add ident info for the "Intel PRO/Wireless 2011B LAN USB Device"
+  - Include an almost-sane fix to the modversion madness
+  - Tweak the init order of the PCI driver structs
+-pre3
+  - Added ident info for ASUS WL-110/WL-100 cards
+  - Support for PCI power managment
+  - Fixed a wep hang on the transmit side
+  - Compile fixes; mainly for 2.2 kernels
+  - Add support for the SIOCGIWRATE wireless extension
+-pre2
+  - Restructured the driver locking.  SMP should be MUCH better now.
+  - Stripped out more dead code. (mainly FID_STACK)
+  - Fix an skb access after we call netif_rx
+  - Fixes for XScale CPUs.
+  - Added added a MiniUSB ident info
+  - Restructure of the docmd_* functions
+-pre1
+  - Host-based WEP decryption and encryption
+  - Partial rewrite of copy_to_bap.
+  - Debian package metadata updated to 3.0-STABLE. (David Everley)
+  - Stripped out a lot of crap from wlan_compat.h
+  - More atmel adapters added to the USB exclude list.
+  - James Goodwin's patch to fix a bug in the 80211conv code.
+  - The 3COM AirConnect board is a PLX adapter. 
+0.1.14
+  - Added PCI ident info for the 3Com AirConnect PCI.
+  - FCS toggle now (really) defaults to false.
+  - Added PCMCIA ident info for the 3Com AirConnect 3CRW737A/3CRW777A
+  - David Everly's patch to kernel detection in the Configure script
+  - David Everly's patch to add better debian packaging bits.
+-pre7
+  - Added kernel tags stuff.
+  - Added PCMCIA ident info for the Actiontec 802CI2 card.
+  - Added PCMCIA ident info for the Proxim RangeLAN-DS/LAN card.
+  - Endian "fixes" for PCI PowerMacs.  This fix may be relevant for other
+    BigEndian/PCI (and PLX) platforms.
+  - FCS in monitor mode now optional; defaults to off.
+  - Populate the monitor channel in the prismheader.
+-pre6
+  - monitor mode now works on USB widgets.
+  - Fix an alignment bug in the rx path.
+  - Fix a brown-paper-bag bug in the usb flash code.
+  - Explicitly enumerate the USB widget endpoints, and use 'em.
+  - REALLY fix the wlan.conf overwriting.
+  - More minor cleanups in the PCI/PLX init code.
+  - endian-ness fixes in the monitor code
+  - Applied a patch from David Everly to fix another 2.2.x compile problem.
+-pre5
+  - Add USB entries for the "Melco WLI-USB-S11 11Mbps WLAN Adapter"
+  - Don't overwrite /etc/wlan.conf if it already exists.
+  - Compile sniffing code if packet socket is modularized.
+  - Fix a typo with the init script.
+  - Fix a compile problem with 2.2.x kernels
+-pre4
+  - First bits of the SMP/locking fixes.
+  - Partial rewrite of the PCI/PLX/USB driver internals.
+  - Added a makefile for the 'addons/keygen' tool.
+  - Fixed a race condition in the USB code.
+  - Applied Godmar Back's "SSIDs with spaces" patch.
+-pre3
+  - Applied pizza's patch to remove the pb_t structure and make all 
+    802.11<->ether conversions happen in-place.  Noticeably reduces
+    cpu load.  Also includes a few misc bugfixes to the conversion code.
+  - Workaround for the kernel panic on bringing up a USB interface
+  - Applied Mike Klar's USB patch that adds support for the MIPS
+    target and should, among other things, fix WEP under USB.
+  - Added Remy Cool's patch to add the Dynalink prism2 card ids.
+  - Tim Miller's pcmcia script install path patch
+  - Applied Tim Fletcher's patch to allow compilation against
+    the newest versions of the wireless extensions. (V13)
+  - Added jwyatt's patch for the Compaq Evo N600C USB adapter thing.
+  - Per mwelk's suggestion, changed the displaystring totext to single
+    quote the strings.  Hopefully this will take care of some of the 
+    "SSID w/ space" problems.
+-pre2
+  - tseward's ID code patch for Siemens SpeedStream USB adapters.
+  - pizza's patch for dropping/ignoring frames in promisc and allmulti
+    modes.
+  - crankin's new Actiontec USB IDs.
+  - crankin's fix for wext /proc zero vs. garbage problem.
+-pre1
+  - pizza's chkconfig comment in rc.wlan.
+  - pizza's patch to add true promiscious support to 0.1.13. Also includes
+    Experimental ALLMULTI support.
+  - pizza's patch to add PF_PACKET capture and raw transmit to 0.1.13-pre2, 
+    (with toggles for WEP in sniffing and prism header)
+    NOTE: this patch _removes_ the old netlink monitor mode (sniff) interface.
+    If you're sniffing, you need to use the latest libpcap (v7.2-pre..from CVS),
+    you'll also need to build your own ethereal (0.9.0 or greater) using the
+    latest libpcap.
+  - bhuang's fix for the hfa384x_test_command() function.
+0.1.13
+-pre4
+  - crankin's revised USB ID patch.
+  - Fixed a little buggage in the p80211knetdev_set_mac_address() function.  
+-pre3
+  - crankin's patch for a bug in usb rrid, DBFENTER/EXIT, and Actiontec
+    USB IDs.
+  - hmuurimaa's ID patch for the Omnibook500 integrated USB adapter
+  - proskin's patch for MODULE_LICENSE conditional
+  - dstates (JediElite) submission (others submitted it too) for the
+    NDC PLX card.
+  - crankin's patch for src/prism2/driver/Makefile. PCI and USB were
+    linking with PLX's prism2wext.o file.  DOH!
+-pre2
+  - Synch'd the etc/pcmcia/wlan-ng scripts with the etc/wlan* scripts.
+    This should help PCI/PLX/USB Adhoc users.
+  - Added cmulliner's patch for set_mac_address(). Also changed it to
+    use dot11StationID instead of the prism2 specific mib item...Oh
+    Yeah, I also changed to comments to /*...*/  ;-)
+  - Fixed PDA reads and PDA validation.
+  - KNOWNBUG: prism2_usb + linux-2.4.17 + uhci.o : Very slow performance.
+    We need to look into having multiple posted tx and rx urbs (this is
+    also a TODO).
+  - KNOWNBUG: prism2_usb + linux-2.2.20 + uhci.o : Physically 
+    disconnecting the device causes a Panic.  The logs look like the
+    usbdev is still holding some buffers (urbs?) associated with the
+    device despite the fact that I've explicitly unlinked them.  This
+    problem does not occur on 2.4.17 and, unfortunately, I don't have
+    time to debug 2.2.20 this time around.
+  - Made all corereset() calls dependent on the prism2_doreset module
+    argument.
+  - Added corereset() support for all device types.
+  - Added the lnxreq_ifstate request message.  This request is used
+    to bring the device up to an operable state _after_ the
+    [hostbus]_probe() function is finished.  It can also be used to
+    shutdown and/or restart the driver+device.  This takes the place
+    of the "activate hardware on ifconfig up" code that was introduced
+    in 0.1.11.  This is the change that should fix most of our dhcp
+    client problems.
+  - Massive changes/cleanups to the driver init/shutdown code for all
+    device types (pcmcia|pci|plx|usb).
+  - Removed the add-ons/mibedit application from the linux-wlan-ng package.
+    We'll be re-releasing it as a separate tarball.
+  - Modified hfa384x_usb.c per dbrownell's suggestion to mark the request
+    urb's with the USB_ASYNC_UNLINK flag.  This because we're calling
+    unlink_urb() from the timer callback (intterupt context).
+  - Added arichter's patch for the RRID framelength.  It's a good catch
+    to make things truly correct.  Unfortunately, I don't think it will
+    have any effect.  Because of the 64-byte minimum, the actual RID value
+    is being transferred regardless.  Also, I don't think the RRID handler
+    in the MAC even looks at the framelen field of RRID frames.
+  - Added mwelwarsky's patch for the tx path that may fix some of the
+    "queue empty" errors.  Had to update it for 0.1.13.
+  - Added new PLX device IDs from cyokoyama's patch, but deferred the rest 
+    until we can get a clean patch against the latest release.
+  - Added pizza's v2.1 NETLINK enable/disable patch.  Note that this whole
+    NETLINK enable/disable thing is only barely tested by me.  I _always_
+    have netlink available so maintaining a separate kernel setup just to
+    test this feature is a pain.
+  - Added jdiedrich's pcmcia card ids for the Compaq ipaq PCMCIA card.
+  - Added crankin's patch fixing some more wext induced problems and adding
+    the Actiontec USB ids.
+  - Added abridgett's patch for PRIV_GENSTRING handling.
+  - Added emckee's malloc.h -> slab.h patch and made the mods to the usb
+    and wext files he missed. Some kind list soul told me
+    that the change to slab.h goes way back in the 2.2.x history, so we
+    should be OK.  If this change proves to be a problem for someone with
+    an old kernel, please submit a patch with ifdefs for the version where
+    things changed (not just the version you're using....thanks).
+  - Added jtourrhiles patch for wext reporting level and noise in dbm.
+    To enable the reporting in dbm, you must add "#define WEXT_IN_DB"
+    to the top of src/prism2/driver/prism2wext.c.
+  - Added support for the dbm-normalized RID for CommsQuality in prep
+    for working with Jean's patch.  The mibs are called p2dbmCommsQuality*.  
+    Note that this will only work for secondary firmware versions 1.2.0 
+    and higher. Earlier versions will return with a 
+    'resultcode=implementation_failure'.  Note also: The values returned
+    are signed 16-bit integers that have been stuffed into unsigned 32-bit
+    integers for the trip up to userland.  The following shell expression
+    will convert them back to the signed quantity you want:
+       if [ $val -lt 32767 ]; then
+           echo $1
+       else
+           echo $[ $1 | 0xffff0000 ]
+       fi
+  - Added mkershaw's suggestion to lengthen the wait interval for 
+    commands in hfa384x.c.
+  - Added a note to the README about dleffler's observation regarding
+    netlink troubles and using 'make mrproper'.
+  - Added gback's patch to initialize wireless extensions for non-pcmcia
+    targets.
+-pre1
+  - Fixed a patch induced (not sure which patch) Makefile syntax error.
+  - Added rfloeter's cool Wireless Extensions patch which was kindly 
+    updated to 0.1.12 by pizza.  Note that my own testing of this patch has
+    been minimal but I've had reports of folks who are using it successfully.
+    NOTE: The addition of this patch adds the requirement that Wireless
+    Extensions (version >= 10) be compiled into one's kernel.
+  - DOH! some somewhat kind soul on the lists pointed out that the keygen
+    program wasn't in the distributed tarball.  Basically, I forgot to 
+    check it into CVS, therefore the distribution build script couldn't
+    find it.  Ahem...it's now in CVS and should be included in the tarballs.
+  - Added pizza's patch fixing the "netlink disable" patch.  The 
+    p80211ind_* functions need to be handled individually instead of two
+    giant #if's, but that's a task for another day.
+  - Added theBS's patch for making the /etc stuff installation relative and
+    installing the FIXINST scripts for USB.
+  - Added crankin's SMP deadlock fix patch.
+0.1.12
+  - Added dlyddy's string.h includes and comma fix.  Changing all malloc.h's
+    to slab.h's will have to wait until I figure which kernel version marks
+    the switch so we can ifdef it.
+  - Added bgertfield's Corega support patch.
+  - I added a check to Configure so we add the CONFIG_NETLINK symbol
+    on the compile command line if necessary.
+  - proskin's patches for netlink disable when not configured in kernel,
+    mkprintstr fix, and turn off skeleton install.  The netlink patch
+    pointed out something that might be the root cause of some problems
+    with the _cs driver.  pcmcia_cs now strips the kernel CONFIG items
+    it cares about and puts them in it's own include/linux/config.h 
+    (which is symlinked to include/pcmcia/config.h).
+  - Added mtaylor's suggested close() to do_ioctl() in wlanctl.
+  - Added mkarmak's suggested change for the GL24110P device ID as
+    PCI_DEVICE_GL24110P_ALT and an additional item in the device table
+    for PLX devices.
+  - Added crankin's suggested MODULE_LICENSE statements.  Had to figure
+    out the version ifdefs myself though.  ;-)
+  - Added vragor's patch for arm updates to the Makefiles and Configure.
+  - Added jsuhr's patch of the PLX9052 irq enable code from the orinoco
+    driver.  Note: PLX contributions are highly valued here because we rarely
+    use these devices ourselves.
+  - Added cfang's PCMCIA ident info for AirEZY card.
+  - Made USB port reset in open() an option, DEFAULT IS OFF.
+  - Cleaned up the top edge of hfa384x*.c (needs some more).
+  - Added the notion of CMD vs. AUX format MAC chip addresses.
+  - Modified isgoodpdr() to accept anything less than 0x1000.
+  - Updated the wlan-ng scripts for the new open/close behavior.
+  - Fixed a bunch of issues that caused bad breakage for hot-plugging
+    the USB module.
+  - Added a module argument to enable/disable the MAC (or usbport) reset
+    performed in prism2sta_open().
+  - Moved the port reset corereset() and the call to the open(). This
+    gets the port reset out of the probe_usb() context and appears to
+    solve the recursive probe problem in some cases.
+  - Cleaned up the overlength usb packet problems
+  - Added rmemreq/resp and wmemreq/resp support
+  - Fixed some of the 64-byte packet problems in a few commands.
+0.1.11-usbonly
+  - Note: hfa384x*.c are currently undergoing some changes.  I believe
+    these changes have broken some things for pcmcia/pci/plx support.  I'm
+    not certain since I haven't tested them.  As such, this is a USB ONLY
+    release.
+  - Cleaned up the use of hfa384x_drvr_*() vs. hfa384x_cmd_*() a little.
+    This is a work in progress.
+  - Rewrote the USB request/response machine again.
+  - Added tnewsham's keygen program to the add-ons directory.  I don't
+    include it in the overall build because I'm not comfortable with making
+    this package dependent on openssl right now.  It is supposed to generate
+    keys in a manner identical to the windows software.  I have not personally
+    verified this.  If someone wants to contribute more complete build
+    instructions for this program, please do.
+  - IMPORTANT! Note that we've changed the up/down behavior.  You now
+    must 'up' the linux netdevice interface (e.g. ifconfig wlan0 up) prior
+    to using wlanctl-ng.  Also, wlanctl commands aren't available after
+    "ifconfig down".  From a low-level perspective, this is how most
+    linux netdevices work.  We originally started trying to create a 
+    setup where "ifconfig up" on an interface that wasn't associated would
+    fail.  With PCI and even more so with USB, that has proven unworkable.
+    The idea now is:
+      Step 1: ifconfig wlan0 up 
+               Enables the hardware so it's ready to handle wlanctl-ng commands.
+      Step 2: wlanctl-ng <various commands>, repeat 
+               Set up the dot11 configuration and get yourself associated or
+               whatever.
+      Step 3: ifconfig wlan0 <address>  
+               After getting a "real" 802.11 connection, assign the address
+               to the interface (via static numbers, dhcp or whatever).
+
+      Note that it is very important that you do _not_ down the interface
+      between the initial 'ifconfig up' and the later ifconfig that assigns
+      the address.  'ifconfig down' will shut down and reset the hardware.
+      If you down the interface, all that good work in step 2 will be lost.
+  - Rewrote the USB request/response machine
+  - Moved all memmapped/irq interface elements from prism2*.c to hfa384x.c
+    in preparation for adding USB support.
+  - Fixed 'make clean' so it doesn't generate .depend files.
+  - Removed some leftover pcmcia-cs dependencies for non-pcmcia targets.
+0.1.10
+  - Added module param "prism2_ignorevcc".  If set to non-zero, we just
+    accept the Voltage we get from pcmcia-cs without checking.  USE WITH
+    CAUTION!!!!
+  - Changed the voltage setting code such that we never try to change it.
+  - Added NETGEAR PCI info.
+  - Fixed a problem with the interrrupt enable in mlme_start().
+  - Fixed the netdevice_t problem.
+  - Added some new CIS entries.
+  - Fixed some byte order things re: dblythe's patch.  The problem went
+    a little farther than the patch so I had to change some things.
+  - Added lye's fix for the netdevice_t problem on various targets.
+  - Added an Ad-Hoc support patch from ????? (please identify yourself,
+    it's a nice bit of code and stays within the spirit of things).  Adhoc
+    still needs work though.  Remember, only the _first_ STA in an IBSS
+    should issue an MLME-Start.request.  All the rest should scan/join
+  - Re-added the monitor mode stuff.  At this point I guess Intersil won't 
+    be taking it out.  Many thanks to those who maintained the patches and
+    my apologies for the hassle.
+0.1.9
+  - As part of the PCI stuff, rewrote the scripts for 'fixed' (i.e. non-
+    hotswappable) cards like the ISL3874 and PLX based PCI adapters.
+  - Added support for the dot11req_reset command.  It should perform a
+    complete reset of the MAC and driver.  Note that the MAC needs to be
+    completely reconfigured from userland after the reset has occurred.
+    Also added an internal call to the reset function when unloading a
+    PCI or PLX driver.  We need this reset to make sure that the card is
+    no longer generating interrupts.  Fixed this problem:  If the driver
+    is unloaded, the card is still generating interrupts, and another active
+    device+driver is using the same interrupt....system locks up.  DDT.
+  - Rewrote the PCI support for PLX and ISL3874.  The rewrite was targeted
+    at 2.4.7 with additional code to provide backward compatibility for
+    2.2.x.  NOTE:  the PCI code still doesn't support the PCI power
+    management stuff.  It will probably need more work when laptops w/
+    the ISL3874 based mini-PCI cards show up.
+  - Whoops, forgot to put this in the original 0.1.9 release
+0.1.9-pre1
+  - Added support for the ISL3874 based mini-pci card.  Also cleaned 
+    up some of the PLX stuff (needs more work though).
+0.1.8
+  - Fixed some script bugs relating to WEP and generated keys.
+  - Fixed the autojoin auth type control
+  - Added/Changed some PDR numbers (thanks to BroMax for supplying hardware)
+  - Received a large patch from bjames of Rebel Computing.  Here's a 
+    summary in his words:
+
+     > Minor bugs (not already found in 0.1.8-pre10):
+     > 
+     > 1. p80211metamsg.c:
+     > - Wrong conversion functions for "p2req_mmi_read" (value).  enumint ==>
+     > int
+     > 
+     > 2. prism2sta.c:
+     > - "dot11_desired_bss_type" in "priv" structure left at 0 (i.e. an
+     > invalid value) after initialization so mibget could not retrieve a value
+     > unless the network was started.  Initialized to 1.
+     > 
+     > 3. prism2mgmt.c:
+     > - "prism2mgmt_channel_info()" uses HFA384x_RID_SCANREQUEST_LEN instead
+     > of ...CHANNELINFOREQUEST...  (However, they're the same size.)
+     > 
+     > 4. prism2mgmt.c:
+     > - "prism2mgmt_auxport_read()" did not set the resultcode to "success" if
+     > the read succeeded.
+     > 
+     > 5. p80211types.c:
+     > - "p80211_fromtext_displaystr()" tests for length < maxlen.  This
+     > probably should have been <= maxlen (i.e. excluding the \0), based on
+     > the maxlen values in "p80211metamib.c" and based in what
+     > "p80211_isvalid_displaystr()" checks.  Also,
+     > "p80211_isvalid_displaystr()" assumes that "pstr->len" includes the \0
+     > when it does the minlen check.  It probably shouldn't do this.
+     > 
+     > 6. p80211metamsg.c:
+     > - dot11_reassociate command has a "dot11req_reassociatefailuretimeout"
+     > argument which should probably be "reassociatefailuretimeout".
+     > 
+     > 7. prism2sta.c:
+     > - WLAN_PCI ==> WLAN_PLX in "init_module()".
+     > 
+     > Enhancements:
+     > 
+     > 1. All Prism2 RIDs are now accessible.  Unfortunately, rather a lot was
+     > changed to do this:
+     > - Rather than cut and paste many more cases into the monster
+     > "prism2mib.c" switch statement, "prism2mib.c" was completely reworked to
+     > be table-driven with a bunch of semi-generic processing functions.  That
+     > made it a lot easier to add new DIDs.  Several RID lengths in hfa384x.h
+     > had to be changed from 0 to their actual value since more of the lengths
+     > get used, now.  (Changed: prism2mib.c, hfa384x.h)
+     > - 2 new data types were added to "p80211types.c".  One to handle integer
+     > arrays (i.e. multi-word RID records...so that a DID didn't need to be
+     > added for each element) and bit arrays (just to make them easier to deal
+     > with).  However, there wasn't enough room in the packed DID to add new
+     > types, so the type was removed from the DID (and from P80211DID_MKID)
+     > and a function written to determine the type based on the conversion
+     > functions.  (Changed: p80211meta.h, p80211types.h, p80211meta.c,
+     > p80211types.c, mkmetastruct.c, p80211metamib.c p80211metamsg.c,
+     > wlanctl/help.c)
+     > Integer arrays look like: p2PRIIdentity=21,0,0,3
+     > "meta->maxlen" specifies the number of integers.
+     > Bit arrays look like: p2ChannelList=0,1,2,3,4,5,6,7,8,9,10
+     > for bits 0-10.  "meta->min" and "meta->max" give the range of bits
+     > allowed.
+     > - The "p2Table" DIDs were split into p2Static, p2Dynamic, p2Behavior,
+     > etc., in order to correspond with the Prism Driver Programmer's Manual.
+     > A few of the names were also changed in order to correspond to the
+     > manual.  (Changed: p80211metamib.c, prism2mib.c)  The changed names (of
+     > the supported DIDs) are:
+     > p2SystemScale ==> p2CnfSystemScale
+     > p2MaxDataLen ==> p2CnfMaxDataLength
+     > p2EnhancePowerSaveMode ==> p2CnfPMEPS
+     > p2MaxSleepDurection ==> p2CnfMaxSleepDuration
+     > p2PMHoldoverDuration ==> p2CnfPMHoldoverDuration
+     > p2OwnName ==> p2CnfOwnName
+     > p2McastPMBuffer ==> p2CnfMulticastPMBuffering
+     > p2TxControlDepth ==>p2CnfTxControl
+     > p2RoamingMode ==> p2CnfRoamingMode
+     > p2MMLife ==> p2CnfMMLife
+     > p2AltRetryCount ==> p2CnfAltRetryCount
+     > p2ReserveDuration ==> p2CnfAPPCFInfo (bit 1)
+     > p2ExcludeLongPreamble ==> p2CnfExcludeLongPreamble
+     > - Added new RIDS from the Prism Driver Programmer's Manual 1.70
+     > (2000-11-29).  Added p2CnfPriorityQUsage, p2CnfTimCtrl,
+     > p2CnfThirty2Tally, p2CnfEnhSecurity.  Added "algorithm" to AuthRequest.
+     > 
+     > 2. A user utility program was written to do such things as query all
+     > read-able MIBs, query all write-able MIBs, set all write-able MIBs,
+     > etc.  A "p2req_enable" command was added (similar to the
+     > "dot11req_start" command but without requiring all the 802.11
+     > arguments).  This allows the driver to be started in a straight forward
+     > manner, simply by setting all write-able MIBs and then enabling it.
+     > (Changed: p80211metamsg.c, prism2sta.c, prism2mgmt.c, prism2mgmt.h)
+     > 
+     > 3. Support added for Prism2 CommTallies and a DID added to query the
+     > values.  The values will come back as an array of integers.  Support
+     > also added for 32-bit tallies (i.e. p2CnfThirty2Tally).  (Changed:
+     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c, hfa384x.h)
+     > 
+     > 4. Access Point support:
+     > - Added support for maintaining a list of authenticated/associated
+     > stations and a DID added to query the list.  (Changed: prism2mib.c,
+     > prism2sta.c, prism2mgmt.h, p80211metamib.c)
+     > - Added support for host control of authentications (allowed and denied
+     > lists) and a DID added to set and query the lists.  Support for Prism2
+     > AuthenticationRequest information frames.  Not tested yet.  (Changed:
+     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c)
+     > - Added support for Prism2 PowerSaveUserCount information frames and a
+     > DID added to query the value.  (Changed: prism2mib.c, prism2sta.c,
+     > prism2mgmt.h, p80211metamib.c)
+     > - Added a new data type to "p80211types.c" to handle arrays of MAC
+     > address (used to set/query the above lists).  (Changed: p80211types.h,
+     > p80211types.c, mkmetastruct.c, wlanctl/help.c)
+     > Address arrays look like:
+     > p2Authenticated=00:50:51:52:53:54,00:60:61:62:63:64,00:70:71:72:73:74
+     > "meta->maxlen" specifies the maximum number of addresses.
+     > - Unforetunately, all these lists are limited in length by the length of
+     > the mibattribute parameter in mibget/mibset.  This is not very nice but
+     > it was the quickest/easiest way to implement it.
+     > 
+     > 5. Changed maximum mibattribute length from 256 to 384 to support
+     > querying commtallies and MAC address arrays.  (Changed: p80211types.h)
+     > 
+     > 6. 128-bit WEP key support:
+     > - Rather than creating different MIB's for 64-bit and 128-bit WEP keys,
+     > the "octetstr" definition for dot11WEPDefaultKey0, etc., was changed to
+     > allow for a range of lengths (e.g. from 5 to 13).  The
+     > dot11WEP128DefaultKey0, etc., MIBs were removed.  (Changed:
+     > p80211meta.c, p80211types.c, p80211metamib.c, p80211metamsg.c,
+     > mkmetastruct.c, wlanctl/help.c)
+     > - WLAN_WEP_KEYLEN changed to WLAN_WEP_MAXKEYLEN and set to 13.
+     > (Changed: p80211hdr.h)
+     > - Optional "length" argument added to "nwepgen.c" so that either 5 or 13
+     > byte keys can be handled.  (Changed: nwepgen.c)
+     > - 128-bit-specific parts of "etc/pcmcia/wlan-ng" are no longer
+     > necessary.  Genstr changes to handle generation of 13-byte keys using
+     > nwepgen.  (Changed: etc/pcmcia/wlan-ng)
+     > - WEPDefaultKey's were made write-only.  A new
+     > "P80211ENUM_resultcode_cant_get_writeonly_mib" was added.  (Changed:
+     > p80211types.h, p80211types.c, p80211metamib.c, prism2mib.c)
+     > 
+     > 7. Access code in DID:
+     > - This was changed from a single bit flag (P80211DID_ACCESS_READONLY and
+     > P80211DID_ACCESS_READWRITE) to a pair of flags (P80211DID_ACCESS_READ
+     > and P80211DID_ACCESS_WRITE) since some MIBs are read/write, some are
+     > read-only, and some are write-only (e.g. WEP keys).  This makes it
+     > easier to determine which MIBs are read-able and write-able without
+     > having to go all the way to the driver and then interpret a failure
+     > error code.  (Changed: p80211types.h, p80211metamib.c)
+     > 
+     > 8. It was a bit of a hassle switching between the station driver and the
+     > AP driver...which we seemed to be doing a lot.  The additional cost was
+     > not particulary high to simply compile in both station functionality and
+     > AP functionality.    A change was made so that "prism2sta_initmac()" set
+     > an "ap" flag when it detected AP firmware.  "prism2mgmt.c" then uses the
+     > flag to determine whether or not to allow station-only or AP-only
+     > commands to be executed.  "prism2mib.c" also uses this to handle the
+     > mode-specific MIBs.  This made it possible for the same module to
+     > support either stations or APs, thereby simplifying the "make", the
+     > install, and switching between stations and APs.  The only thing that
+     > needs to change, is the value of "IS_AP" in "wlan-ng.opts".
+     > 
+     > 9. Miscellaneous small additions:
+     > - Network state (stopped, started) added and a DID to query it.
+     > - User-settable comment string added and a DID to set/query it.
+     > - Some event logging (authentications, associations, etc.) can be
+     > enabled/disabled at run time rather than only at compile time.  A DID
+     > was added to set/query it.
+     > - A "p2req_readcis" command (similar to "p2req_readpda") was added.
+     > 
+     > 10. Small changes:
+     > - Added bounds checking to "p80211item_fromtext_boundedint".  This was
+     > the only "fromtext" function that did not already do complete
+     > validation.  It should no longer be necessary to call the "isvalid"
+     > function if "fromtext" has just been called.  The call to "isvalid" was
+     > removed from "wlanctl".  (Changed: p80211types.c, wlanctl.c)
+     > - "p80211item_maxitemlen()" wasn't really adding much of value so it was
+     > amalgamated into "p80211item_getoffset()".  The DID type is now only
+     > checked once instead of three times.  (Changed: p80211meta.h,
+     > p80211meta.c)
+     > - "hfa384x_drvr_setconfig16()" and "hfa384x_drvr_setconfig32()" changed
+     > their input parameters when converting to hf384x byte order.  Potential
+     > source of bugs.  Changed to use a local variable.  (Changed: hfa384x.c)
+     > - ScanRequest, JoinRequest, etc., moved from the "Information Record"
+     > section to the "Configuration Record" section.  (Changed: hfa384x.h)
+     > - Re-worked "p80211_fromtext_setmibattribute()" to make it a little
+     > easier to follow the logic.  (Changed: p80211types.c)
+     > - Type of "channellist" argument in "p2req_channel_info" command changed
+     > from "octetstr" to "bitarray" to make it easier to deal with (can
+     > specify a variable number of channels and don't need to use hex
+     > values).  (Changed: p80211metamsg.c, prism2mgmt.c)
+     > - "auxctl" parameter set to HFA384x_AUX_CTL_EXTDS in
+     > "prism2mgmt_auxport_read()" and "prism2mgmt_auxport_write()" so that
+     > they are still compatible with 0.1.7.  (Changed: prism2mgmt.c)
+     > - Re-worked "prism2mgmt_set_grpaddr()" and added comments so that it's
+     > more obvious what is going on.  Also, deleted the check which produced
+     > an error if an attempt was made to delete an address from an empty
+     > list.  This makes things more consistent and predictable (i.e. the same
+     > as attempting to delete an address which is above the last group
+     > address...the attempt is simply ignored).  Replaced the "memcpy()" call
+     > with "memmove()" since "memcpy()" is not guaranteed to work with
+     > overlapping ranges.  (Changed: prism2mib.c)
+     > - Minimum length of "dot11OperationRateSet" changed from 126 to 1 to
+     > match the 802.11 standard.  (Changed: p80211metamib.c)
+
+  - Fixed some ci/co related problems pointed out by wbinjie.
+  - Added ygalayda's startup scripts for PCI in the directory 
+    ./etc/wlan_pci.  They aren't installed, that will have to be done
+    by hand.  I have not tested these scripts myself.
+  - Added sbaer's 'NULL check' fix in p80211_indicate_shutdown().
+  - Added ctedrow's 'alloc not checked' fix in prism2sta_int_rx().
+  - Added pkundrat's auth mib changes.
+  - fgrau's conf.modules/modules.conf fix.
+  - Added ygalayda's submission for the Global Sun GL24110P PLX based
+    adapter.  Also included a Makefile fix.
+  - Fixed some script bugs relating to 128-bit WEP based on smmclusky's
+    observations.  These changes have not yet been tested by me.
+  - Added rlazarev's additions to the pcmcia startup scripts
+  - Added pkundrat's wlandev-name fix for 2.3.99+ kernels
+  - Fixed some type/(to|from)text mismatches per note from pkundrat
+  - Fixed some missing MKITEMNAMEs per note from pkundrat
+  - Added D-LINK and SMC to the linux-wlan-ng.conf file
+  - Added Zoom, Linksys and Addtron to the linux-wlan-ng.conf file
+  - Added pkundrat's meta-item minlen stuff.
+  - Added conditionals for PLX vs. PCMCIA build
+  - Changed _pci driver filename to _plx
+  - Fixed undconditional MOD_INC in prismt2sta_open()
+  - Removed identification of old PCF firmware.
+  - Fixed version.h generation bug from pre5
+  - Added dhsu's (Eumitcom) code for supporting the PLX based PCI cards.
+  - pkundrat's (whoops, sorry peter) PDA display program in ./scripts.  
+    I haven't used it because my perl setup is messed up and I'm perl 
+    challenged.
+  - bcarr's patches for alpha boxes.
+  - wwoods's patches for 2.2.18 and adding bytes received to the 
+    statistics.
+  - proskin's patch adding 'network stop'
+  - Most of proskin's patch containing Configure fixes, adding file
+    existence checks, and making sure directories are present.
+  - tgriffin's patch for mrproper/memleak/nullcheck/freeonsuccess.  
+    conf.modules change is already there.
+  - Added most of jhicks ARM related patches.  I had to leave out the 
+    HOST vs. TARGET compile variables in the Makefiles though.  Some folks
+    are using that stuff.
+  - Added script changes and new mib items to support 128-bit WEP per hong's
+    suggestion.
+  - Added conf.modules alias instead of symlink
+  - Added a compat macro for kfree_s to wlan_compat.h per the suggestion
+    from rbraun.
+  - Added pkundrat's 'chinfo' patch
+  - Added pkundrat's 'small fixes' patch
+  - Added some contributed patches supporting a fix to our 'reassoc
+    under load' problem
+  - Added wlannoenable pcmcia scheme support to prevent card initialization.
+  - Removed a PDR patch requirement.
+0.1.7
+  - Fixed the "converting eth in unknown mode" bug
+  - Added APM/ACPI suspend/resume handling
+  - Added PPC support
+  - Added Prism test command support
+  - Integrated patch to fix some structure alignment problems for ARM
+  - Added multi-transmit buffer support
+  - And much, much more.....
+0.1.6
+  - Fixed usage of pcmcia scheme file so we're not stomping on the user's
+    scheme setting.
+  - Updated the wlan-ng script for the new config variable names and added
+    configurable download utility and a set of user MIB settings.
+  - Added support for the Samsung and Z-Com cards.
+  - Changed the name of the module (from pcmcia's point of view).
+  - Fixed the "echo \c" problem in Configure
+  - Added new and rearranged existing wlan-ng.opts configuration variables.
+  - Created a scheme for "addon software" in the ./src/Makefile
+  - Made some changes to the target detection conditionals in wlan_compat.h
+    to better support LinuxPPC (port isn't finished yet).
+  - Finally fixed the byteorder stuff to use (duh) byteorder.h
+  - Fixed a bad free of the TX skb when we signal an error to higher layers.
+  - Moved some code around and added rules to the prism2/driver (new directory
+    too) Makefile.  This is so we build two separate drivers; one for STA,
+    one for AP.  Both drivers are built from the same source files with
+    the code conditional on the WLAN_AP and WLAN_STA defines.
+  - Fixed the plugging in prism2dl so it reports ALL missing PDRs.
+  - Added an anonymously contributed patch that adds support for the -m
+    and -s cmdline options for prism2dl.  Thanks! You know who you are.@-)
+  - Added some fixes to the dependency file generation.
+  - Fixed a flash programming timeout miscalculation...and fixed it again 
+    when I introduced an integer promotion problem.
+  - Added the STA vs. AP conditionals to prism2mgmt.  Note that this causes
+    a few compile time warnings.  They're harmless and will go away in the
+    next release.
+  - Created the file prism2mib.c to hold all the MIB get/set stuff which is
+    getting a little out of hand.
+  - Added pcmcia config support for the Z-Com (supposedly) dual voltage card.
+    Unfortunately the engineering sample I have doesn't seem to work at 5v,
+    or it might be the code.....not sure yet.  We're still a little
+    bleeding edge with that card.
+  - Cleaned up the version, compatibility range, and serial number 
+    log messages.
+  - Added a loop limit to the interrupt handler. (duh)
+  - Changed the names of the driver modules for STA and AP.  make install
+    then creates a softlink depending on the make config selection.  One
+    note, both drivers report the same dev_info string to pcmcia-cs.  Trying
+    to load both of them simultaneously would be bad (I have no idea what 
+    would happen, I just thought of it).
+  - Changed a bunch of types and constants for hfa384x.
+  - Added functions for a couple of new commands in the hfa384x.
+  - Began adding support for the Prism2 unique MIB items.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base
new file mode 100644
index 0000000..66801bd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/COPYING.svn-base
@@ -0,0 +1,57 @@
+* COPYING
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+Unless otherwise indicated, this code is distributed under version 1.1
+of the Mozilla Public License ("MPL"), included in the LICENSE file.
+
+Where this software is combined with software released under the terms
+of the GNU Public License ("GPL") and the terms of the GPL would
+require the combined work to also be released under the terms of the
+GPL, the terms and conditions of the MPL will apply in addition to
+those of the GPL with the exception of any terms or conditions of the
+MPL that conflict with, or are expressly prohibited by, the GPL.
+
+        -- AbsoluteValue Systems, Inc.
+
+Note: This file is derived from a copyrighted work of David Hinds.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base
new file mode 100644
index 0000000..7b62dd2
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Configure.svn-base
@@ -0,0 +1,486 @@
+#!/bin/bash
+#
+# Configure
+#
+# linux-wlan Open Sourc Project
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# -------------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source Project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# -------------------------------------------------------------------------
+# TODO: Since we're dependent on configured pcmcia source, we should change 
+#       this such that it will ask for the pcmcia source dir and then read
+#       all our stuff from pcmcia/config.mk.  Would simplify alot of things.
+# -------------------------------------------------------------------------
+#
+# This script adapted from the pcmcia-cs/Configure file, license statement below:
+#
+# pcmcia-cs/Configure 1.110 1999/06/24 17:37:36
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and
+# limitations under the License.
+#
+# The initial developer of the Configure code is David A. Hinds
+# <dhinds@hyper.stanford.edu>.  Portions created by David A. Hinds
+# are Copyright (C) 1998 David A. Hinds.  All Rights Reserved.
+#-------------------------------------------------------------------------
+
+ECHO="/bin/echo -e "
+fail ()
+{
+	$ECHO ""
+	$ECHO "Configuration failed"
+	$ECHO ""
+	exit 1
+}
+
+usage () {
+    $ECHO "usage: Configure [-h|help|-d [filename]|-f <filename>]"
+    $ECHO ""
+    $ECHO "  -h|help       - display usage info"
+    $ECHO "  -d [filename] - automated configuration with option to specify input file"
+    $ECHO "  -f <filename> - read configuration data from file and prompt user"
+    exit 1
+}
+
+if [ ! -r config.in ]; then
+    $ECHO "config.in does not exist!"
+    fail
+fi
+
+. ./config.in
+
+if [ -r config.out ]; then
+    . ./config.out 2>/dev/null
+fi
+
+PROMPT=y
+if [ $# -gt 0 ] ; then
+	if [ "$1" = "-h" -o "$1" = "help" ] ; then 
+		usage
+	fi
+	if [ "$1" = "-d" -o "$1" = "-f" ] ; then 
+		if [ $# -gt 1 ] ; then
+			if [ -r $2 ]; then
+				. $2
+			else
+				$ECHO "$2 does not exist"
+				fail
+			fi
+		else
+			if [ "$1" = "-f" ] ; then 
+				usage
+			fi
+		fi
+		if [ "$1" = "-d" ] ; then 
+			PROMPT=n
+		fi
+	fi
+fi
+
+#=======================================================================
+
+CONFIG=config.new
+CONFIG_MK=config.mk
+rm -f $CONFIG $CONFIG_MK $MODVER
+
+cat << 'EOF' > $CONFIG
+#
+# Automatically generated by 'make config' -- don't edit!
+#
+EOF
+
+write_bool() {
+    value=`eval $ECHO '$'$1`
+    if [ "$value" = "y" ] ; then
+	$ECHO "$1=y" >> $CONFIG
+	$ECHO "$1=y" >> $CONFIG_MK
+    else
+	$ECHO "$1=n" >> $CONFIG
+	$ECHO "# $1 is not defined" >> $CONFIG_MK
+    fi
+}
+
+write_str () {
+    value=`eval $ECHO '$'$1`
+    $ECHO "$1"=\"$value\" >> $CONFIG
+    $ECHO "$1=$value" >> $CONFIG_MK
+}
+
+
+dump_str () {
+    $ECHO "$1" >> $CONFIG
+    $ECHO "$1" >> $CONFIG_MK
+}
+
+prompt () {
+    eval $3=\"$2\"
+    if [ "$PROMPT" = "y" ] ; then
+	$ECHO "$1 [$2]: \c"
+	read tmp
+	if [ -n "$tmp" ] ; then eval $3=\"$tmp\" ; fi
+    else
+	$ECHO "$1 [$2]"
+    fi
+}
+
+ask_bool () {
+    default=`eval $ECHO '$'$2`
+    if [ ! "$default" ] ; then default=n ; fi
+    answer=""
+    while [ "$answer" != "n" -a "$answer" != "y" ] ; do
+	prompt "$1 (y/n)" "$default" answer
+    done
+    eval "$2=$answer"
+    write_bool $2
+}
+
+ask_str () {
+    default=`eval $ECHO '$'$2`
+    prompt "$1" "`$ECHO $default`" answer
+    eval $2=\"$answer\"
+    write_str $2
+}
+
+mkversionh () {
+versionh=src/include/wlan/version.h 
+cp src/version.h.in $versionh
+
+DATE=`date`
+
+printf '#define WLAN_RELEASE\t"%d.%d.%d%s"\n' \
+        ${WLAN_VERSION} \
+        ${WLAN_PATCHLEVEL} \
+        ${WLAN_SUBLEVEL} \
+        ${WLAN_EXTRAVERSION} >> $versionh
+printf '#define WLAN_RELEASE_CODE 0x%02x%02x%02x\n' \
+        ${WLAN_VERSION} \
+        ${WLAN_PATCHLEVEL} \
+        ${WLAN_SUBLEVEL} >> $versionh
+echo   "#define WLAN_BUILD_DATE \"$DATE\" " >> $versionh
+
+printf '\n' >> $versionh
+printf '#endif\n' >> $versionh
+
+}
+
+#=======================================================================
+
+# If the src/include/wlan/version.h file needs a touchup, fix or create it
+if [ -r src/include/wlan/version.h ]; then
+	WLAN_RELEASE="${WLAN_VERSION}.${WLAN_PATCHLEVEL}.${WLAN_SUBLEVEL}${WLAN_EXTRAVERSION}"
+	OLD_RELEASE=`sed --quiet -e '/#define.*WLAN_RELEASE[^_].*\"\(.*\)\"/s//\1/p' < src/include/wlan/version.h`
+	if [ "${WLAN_RELEASE}" != "${OLD_RELEASE}" ]; then
+		# Overwrite the file
+		mkversionh
+	fi
+else
+	# File doesn't exist, create it
+	mkversionh
+fi
+
+$ECHO ""
+$ECHO "-------------- Linux WLAN Configuration Script -------------"
+$ECHO ""
+$ECHO "The default responses are correct for most users."
+$ECHO ""
+
+#=======================================================================
+# Should we build for PCMCIA Card Services?
+
+ask_bool "Build Prism2.x PCMCIA Card Services (_cs) driver?" PRISM2_PCMCIA
+
+#=======================================================================
+# Should we build for PLX9052 based PCI adapters?
+
+ask_bool "Build Prism2 PLX9052 based PCI (_plx) adapter driver?" PRISM2_PLX
+#=======================================================================
+# Should we build for Prism2 native PCI?
+
+ask_bool "Build Prism2.5 native PCI (_pci) driver?" PRISM2_PCI
+
+#=======================================================================
+# Should we build for Prism2.5 USB?
+
+ask_bool "Build Prism2.5 USB (_usb) driver?" PRISM2_USB
+
+$ECHO ""
+
+#=======================================================================
+# Collect the kernel source tree and test for sanity
+
+CUR_RELEASE=`uname -r`
+
+if [ "$LINUX_SRC" = "" ] ; then
+    LINUX_SRC=/lib/modules/$CUR_RELEASE/build
+fi
+
+ask_str "Linux source directory" LINUX_SRC
+
+if [ ! -f $LINUX_SRC/include/linux/version.h ] ; then
+	$ECHO "Linux source tree $LINUX_SRC is incomplete or missing!"
+	if [ -d $LINUX_SRC/include/linux ] ; then
+	$ECHO "    The kernel header files are present, but not " \
+		"the full source code."
+	fi
+	$ECHO "    See the HOWTO for a list of FTP sites for current" \
+	 "kernel sources."
+	fail
+fi
+
+KERNEL_SOURCE=$LINUX_SRC make -Cscripts 2>&1 > /dev/null
+. scripts/make.opts
+
+# What kernel are we compiling for?
+
+version () {
+	expr $1 \* 65536 + $2 \* 256 + $3
+}
+
+$ECHO ""
+
+SRC_RELEASE="$KERNEL_RELEASE"
+
+VERSION_CODE=`grep LINUX_VERSION_CODE $LINUX_SRC/include/linux/version.h | \
+    sed -e 's/[^0-9]//g'`
+
+$ECHO "The kernel source tree is version $SRC_RELEASE."
+if [ $VERSION_CODE -lt `version 2 4 0` ] ; then
+	$ECHO "This package requires at least a 2.4.x series kernel."
+	fail
+fi
+
+if [ $VERSION_CODE -gt `version 2 5 0` ] ; then
+        KERN_25=y
+        write_bool KERN_25
+fi
+if [ $VERSION_CODE -ge `version 2 6 5` ] ; then
+    KERN_2_6_5=y
+fi
+write_bool KERN_2_6_5
+if [ $VERSION_CODE -ge `version 2 6 17` ] ; then
+    KERN_2_6_17=y
+fi
+write_bool KERN_2_6_17
+
+if [ $VERSION_CODE -gt `version 2 6 26` ] ; then
+    $ECHO "******* WARNING WARNING WARNING *******"
+    $ECHO "Kernels newer than 2.6.26.x are not supported."
+    $ECHO "******* WARNING WARNING WARNING *******"
+fi
+
+if [ "$SRC_RELEASE" != "$CUR_RELEASE" ] ; then
+	$ECHO "WARNING: the current running kernel is actually version $CUR_RELEASE."
+fi
+
+if [ ! -f $LINUX_SRC/.config ] ; then
+    $ECHO "WARNING: .config not present in kernel source tree.  This will"
+    $ECHO "         screw up modversions detection and build optimizations."
+    $ECHO "         Is this a RedHat kernel? Workarounds enabled." 
+    if [ -f $LINUX_SRC/include/linux/modversions.h ] ; then
+	KERNEL_MODFLAGS="-DMODULE -DMODVERSIONS -include $LINUX_SRC/include/linux/modversions.h"
+    fi
+    $ECHO "         For an optimized build, copy over the relevent file from"
+    $ECHO "         $LINUX_SRC/configs/ to $LINUX_SRC/.config"
+fi
+
+# Check for consistent kernel build dates
+CUR_D=`uname -v | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'`
+CUR_D=`$ECHO $CUR_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'`
+$ECHO "The current kernel build date is $CUR_D."
+UTS_VERSION="unknown";
+if [ -f $LINUX_SRC/include/linux/compile.h ] ; then
+	UTS_VERSION=`grep UTS_VERSION $LINUX_SRC/include/linux/compile.h |
+	sed -e 's/.*"\(.*\)"/\1/'`
+	SRC_D=`$ECHO $UTS_VERSION | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'`
+	SRC_D=`$ECHO $SRC_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'`
+	if [ $SRC_RELEASE = $CUR_RELEASE -a "$SRC_D" != "$CUR_D" ] ; then
+	$ECHO "WARNING: the source tree has a build date of $SRC_D."
+	if [ `date -d "$SRC_D" +%s` -gt `date -d "$CUR_D" +%s` ] ; then
+		$ECHO "   Did you forget to install your new kernel?!?"
+	fi
+	fi
+fi
+$ECHO ""
+
+	# Test for netlink availability in the kernel
+	if grep -sq "#define.*CONFIG_NETLINK.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_NETLINK=y
+	else
+		CONFIG_NETLINK=n
+	fi
+	write_bool CONFIG_NETLINK
+
+
+	# Test for pf_packet availability in the kernel
+	if grep -sq "#define.*CONFIG_PACKET.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_PACKET=y
+	else
+		CONFIG_PACKET=n
+	fi
+	write_bool CONFIG_PACKET
+
+
+	# Test for pf_packet availability in the kernel
+	if grep -sq "#define.*CONFIG_HOTPLUG.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_HOTPLUG=y
+	else
+		CONFIG_HOTPLUG=n
+	fi
+	write_bool CONFIG_HOTPLUG
+
+#=======================================================================
+# Alternate target install root dir - the value of this variable
+# will prefix other variables, such as modules and pcmcia directories
+ask_str "Alternate target install root directory on host" TARGET_ROOT_ON_HOST
+
+if [ $PRISM2_PCMCIA = "y" ] ; then
+	# PCMCIA script dir
+	ask_str "PCMCIA script directory" PCMCIA_DIR
+	TARGET_PCMCIA_DIR=$TARGET_ROOT_ON_HOST$PCMCIA_DIR
+	write_str TARGET_PCMCIA_DIR
+fi
+
+MODDIR=/lib/modules/$SRC_RELEASE
+ask_str "  Module install directory" MODDIR
+TARGET_MODDIR=$TARGET_ROOT_ON_HOST$MODDIR/linux-wlan-ng
+write_str TARGET_MODDIR
+$ECHO ""
+
+
+# Just write some out (we're not prompting right now)
+write_str INST_EXEDIR
+TARGET_INST_EXEDIR=$TARGET_ROOT_ON_HOST$INST_EXEDIR
+write_str TARGET_INST_EXEDIR
+
+#=======================================================================
+
+# How should the startup scripts be configured?
+
+SYSV_INIT=n
+if [ "$PREFIX" = "" ] ; then
+	if [ -d /etc/rc.d/init.d -o -d /etc/init.d -o -d /sbin/init.d ] ; then
+	$ECHO "It looks like you have a System V init file setup."
+	SYSV_INIT=y
+	if [ -d /etc/rc.d/init.d ] ; then
+		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG
+		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG_MK
+	elif [ -d /sbin/init.d ] ; then
+		$ECHO "RC_DIR=/sbin" >> $CONFIG
+		$ECHO "RC_DIR=/sbin" >> $CONFIG_MK
+	else
+		$ECHO "RC_DIR=/etc" >> $CONFIG
+		$ECHO "RC_DIR=/etc" >> $CONFIG_MK
+	fi
+	else
+	$ECHO "It looks like you have a BSD-ish init file setup."
+	if ! grep rc.wlan /etc/rc.d/rc.S >/dev/null ; then
+		$ECHO "    You'll need to edit /etc/rc.d/rc.S to invoke" \
+		 "/etc/rc.d/rc.wlan (for ISA/PCMCIA cards)"
+		$ECHO "    so that wlan cards will be started at boot time."
+	fi
+	SYSV_INIT=n
+	fi
+	write_bool SYSV_INIT
+else
+	ask_bool "System V init script layout" SYSV_INIT
+	if [ "$SYSV_INIT" = "y" ] ; then
+	ask_str "Top-level directory for RC scripts" RC_DIR
+	fi
+fi
+
+if [ ! -x $TARGET_ROOT_ON_HOST/sbin/depmod ] ; then INSTALL_DEPMOD=n ; fi
+write_bool INSTALL_DEPMOD
+
+$ECHO ""
+
+#=======================================================================
+# Make sure our target architecture is correct
+
+$ECHO ""
+
+ask_str "Prefix for build host compiler? (rarely needed)" HOST_COMPILE
+dump_str "HOST_CFLAGS=$HOST_CFLAGS"
+
+$ECHO ""
+
+dump_str 'HOST_AS=$(HOST_COMPILE)as'
+dump_str 'HOST_LD=$(HOST_COMPILE)ld'
+dump_str 'HOST_CC=$(HOST_COMPILE)gcc'
+dump_str 'HOST_CPP=$(HOST_CC) -E'
+dump_str 'HOST_AR=$(HOST_COMPILE)ar'
+dump_str 'HOST_NM=$(HOST_COMPILE)nm'
+dump_str 'HOST_STRIP=$(HOST_COMPILE)strip'
+dump_str 'HOST_OBJCOPY=$(HOST_COMPILE)objcopy'
+dump_str 'HOST_OBJDUMP=$(HOST_COMPILE)objdump'
+dump_str 'HOST_RANLIB=$(HOST_COMPILE)ranlib'
+dump_str 'HOST_MAKE=make'
+
+CROSS_COMPILE_ENABLED=y
+if [ "_$CROSS_COMPILE" = "_" ] ; then
+CROSS_COMPILE_ENABLED=n
+fi
+
+write_str CROSS_COMPILE
+write_bool CROSS_COMPILE_ENABLED
+#dump_str 'CFLAGS=-O2 -Wall -Wstrict-prototypes -pipe'
+
+if [ "_$CROSS_COMPILE" = "_" ] ; then
+dump_str 'AS=$(HOST_COMPILE)as'
+dump_str 'LD=$(HOST_COMPILE)ld'
+dump_str 'CC=$(HOST_COMPILE)gcc'
+dump_str 'CPP=$(HOST_CC) -E'
+dump_str 'AR=$(HOST_COMPILE)ar'
+dump_str 'NM=$(HOST_COMPILE)nm'
+dump_str 'STRIP=$(HOST_COMPILE)strip'
+dump_str 'OBJCOPY=$(HOST_COMPILE)objcopy'
+dump_str 'OBJDUMP=$(HOST_COMPILE)objdump'
+dump_str 'RANLIB=$(HOST_COMPILE)ranlib'
+dump_str 'MAKE=make'
+else
+dump_str "AS=$CROSS_COMPILE"as
+dump_str "LD=$CROSS_COMPILE"ld
+dump_str "CC=$CROSS_COMPILE"gcc
+CC="$CROSS_COMPILE"gcc
+dump_str "CPP=$CC -E"
+dump_str "AR=$CROSS_COMPILE"ar
+dump_str "NM=$CROSS_COMPILE"nm
+dump_str "STRIP=$CROSS_COMPILE"strip
+dump_str "OBJCOPY=$CROSS_COMPILE"objcopy
+dump_str "OBJDUMP=$CROSS_COMPILE"objdump
+dump_str "RANLIB=$CROSS_COMPILE"ranlib
+dump_str "MAKE=make"
+fi
+
+#=======================================================================
+# Should we build for debugging?
+
+ask_bool "Build for debugging (see doc/config.debug)" WLAN_DEBUG
+
+$ECHO ""
+
+FIRMWARE_DIR="/etc/wlan/"
+write_str FIRMWARE_DIR
+
+WLAN_SRC=`pwd`/src/
+write_str WLAN_SRC
+
+mv $CONFIG config.out
+
+$ECHO ""
+$ECHO "Configuration successful.  Now type 'make' and pray."
+$ECHO ""
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base
new file mode 100644
index 0000000..83358fd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/FAQ.svn-base
@@ -0,0 +1,468 @@
+********************** Linux-wlan-ng FAQ **************************
+For additions, corrections, and clarifications, send mail to
+solomon@linux-wlan.com with FAQ in the subject.
+*******************************************************************
+
+Q: When will linux-wlan-ng be merged into the mainline kernel?
+
+	Short answer:  Never.
+
+	First, the linux-netdev people will soundly reject this driver.  
+	I don't begrudge them for this; indeed in their position I'd do 
+	exactly the same.  It's a sound engineering decision.
+
+	linux-wlan-ng is obselete, and effort spent fixing it is better 
+	spent elsewhere.  You can't even buy the hardware any longer.
+
+	The original design for linux-wlan-ng was to separate the 802.11 
+	stack from the actual hardware driver.  This added a lot of 
+	complexity, but would greatly ease the pain of supporitng 
+	multiple hardware types.  Unfortunately, the implementation was 
+	turned out to be somewhat flawed, and hardware manufaturers went 
+	away from the thick-mac model, leaving linux-wlan-ng overly 
+	complex for what it did.  
+
+	(Ironically, the linux kernel is adopting a similar 
+	 separation model, but it is a long way off from being ready)
+
+	So why not rewrite linux-wlan-ng to be more suitable, the 
+	enterprising reader may ask?
+
+	The kernel already has two drivers for prism2 (cs/pci/plx) 
+	hardware -- hostap and orinoco. linux-wlan-ng basically 
+	has three features not present in kernel drivers:
+	
+		1) USB support
+		2) nearly complete implemettion of the 802.11 MIB/MLME
+		3) Firmware-based AP support
+	
+	(3) requires an expensive license that isn't even available any 
+	longer, as the hostap mode works far better -- and is already 
+	supported by in-kernel drivers.
+
+	(2) would need to be removed or completely rewritten in order to 
+	be merged, as it does not fit within existing kernel APIs, and 
+	it would be effectively merging new kernel APIs.
+
+	(1) Is the only truly unique thing that linux-wlan-ng does that 
+	is generally needed any more.
+
+	To merge it into the kernel, we'd need to strip out (2), which 
+	would necessitate a complete rewrite -- to the point where 
+	writing a new driver from scratch is easier.  
+
+	Basically, it would take far less effort to add USB 
+	support to the in-kernel drivers than it would to make 
+	linux-wlan-ng acceptable to be merged. 
+
+	In other words, the short answer is:  Never.
+
+Q: It doesn't work/compile/sing/dance!
+
+	First, make sure you're using the latest linux-wlan-ng release
+	from http://www.linux-wlan-ng.org.  New releases are infrequent,
+	but tthey happen for a reason.
+
+	If you are using the latest release, you may want to obtain the 
+	latest development sources via subversion:
+
+		svn co svn://svn.shaftnet.org/linux-wlan-ng/trunk
+
+	Questions and problems with the developement code should be sent 
+	to the development mailing list, at:
+
+		linux-wlan-devel@lists.linux-wlan.com
+
+Q: What devices does the linux-wlan-ng driver support?
+
+	Currently, the linux-wlan-ng driver supports the Intersil
+	Prism2/2.5/3 chipsets.  These chipsets are used in a wide
+	variety of PCMCIA, PCI, and USB products.  If it has a Prism
+	chip in it, linux-wlan-ng should support it.
+
+Q: Will linux-wlan-ng support some feature or funkiness in
+   the <pick one> Linux distribution?
+ 
+	Our development target always consists of stock kernels from
+	kernel.org and stock pcmcia_cs.  If a given distribution
+	chooses to do something funky, we rely on users of that
+	distribution to contribute patches to deal with their
+	funkiness.
+
+	The quickest way to get some action on this kind of item is to
+	communicate with any users of the same distribution that you
+	can find on the linux-wlan-[devel|user] lists about working up
+	a patch.  If it's reasonably sane and doesn't break things for
+	our development environment or for other distributions, we'll
+	be more than happy to roll that patch into the next release.  
+
+Q: What does "resultcode=implementation_failure" mean?
+
+	Complicated Answer: 
+	Each command that can be issued with wlanctl-ng returns a status
+	called "resultcode".  Resultcode is something that we picked up
+	from the 802.11 MLME definition.  In the standard, resultcode
+	is an enumeration with a fixed set of values.  To be able to
+	report failures that a driver detects that are outside the
+	context of the 802.11 standard set of resultcode values, we 
+	invented the "implementation_failure" value.
+
+	Simple Answer:
+	Go look in your kernel log for more detailed error information.
+
+Q: I'm trying to use the HostAP/orinoco/aironet/wvlan driver and it
+   won't work!
+
+	That has nothing to do with the linux-wlan-ng driver.  Go ask
+	those responsible for those drivers.
+
+Q: Can I get Debian packages of linux-wlan-ng?
+ 
+A: Packages of linux-wlan-ng are now available in the Debian stable
+   tree.
+
+Q: Where do I find some RPMS for linux-wlan-ng? The ones on
+    the ftp are dreadfully out of date!
+
+	http://prism2.unixguru.raleigh.nc.us/
+
+	(Maintained by Tim Miller)
+
+Q: I installed the RPMs/compiled the driver and installed it and it
+   won't work when I try to run 'ifup wlan0' or whatnot.
+
+	First, ensure you're running the most up-to-date version of
+	the driver.  Many problems have been fixed in newer releases.
+
+	802.11 wireless networks are much more complex than wired
+	ethernet networks.  They require much more configuration than
+        an ip address.   If you are using pcmcia, edit the file 
+        /etc/pcmcia/wlan-ng.opts to set the network parameters.  For
+        PCI, PLX, or USB adapters, you need to edit /etc/wlan.conf.
+	
+	You also need to make sure you have the correct settings in
+	/etc/modules.conf (alias wlan0 prism2_usb). 
+
+	Might we suggest you read the README file?
+
+Q: When I try to load the driver, I get a whole bunch of errors about
+   unresolved symbols.
+
+	The running kernel does not match the kernel the driver was
+	compiled for.  If you downloaded a RPM, make sure you
+        downloaded the correct version for your kernel.  This should not
+        happen if you compiled the driver from source -- if it does, the
+        kernel configuration you compiled against does not match the
+        running kernel.  Probably a screwed-up distro kernel.
+
+Q: I have a DWL-520 and it won't work!
+
+	The DWL-520 claims to require a PCI 2.2 compliant motherboard.
+        Only fairly new machines support this.  Yes, the box lies.  :)
+        Check the documentation for your system and/or motherboard to see if 
+	it is PCI 2.2 compliant.  
+
+	NOTE:  We have some reports of the DWL-520 working on PCI 2.1
+	motherboards; your mileage may vary.  See the following URL:
+
+		http://www.personaltelco.net/index.cgi/DlinkDwl520
+
+        NOTE:  The Linksys WMP11 v2.7 is NOT prism-based, and
+	thus not supported by this driver.  The Actiontec PCI board is
+	still known to be prism based; you may want to try that instead.
+
+Q: All I see is "Tx attempt prior to association, frame dropped"
+
+	You are not associated with an access point.  Double-check the
+        settings in /etc/wlan.conf (USB, PCI, PLX) or /etc/pcmcia/wlan-ng.opts
+        (for PCMCIA users).    If all of these settings are correct (you
+        did check with your admin, right?) make sure the access point
+        doesn't have a MAC filter installed or has different WEP settings.
+
+	If all of this is verified correct, and are using a PCMCIA
+	card, try setting the "irq_mode=0" option.  See the
+	documentaiton in the pcmcia-cs sources.
+
+Q: I installed the modules, performed a 'wlanctl-ng wlan0 lnxreq_autojoin'
+   command, and it still won't work!
+
+	You did read the README, didn't you?  You need to perform a 
+	"wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable" in order to
+        torn on the radio.  The pcmcia scripts and the /etc/init.d/wlan
+        script do this for you.
+
+Q: I have a XXX USB 802.11b device, will it work with this driver?
+
+	Most 802.11b USB devices use the ATMEL AT76C503A chipset, which
+        is not supported by the linux-wlan-ng project.  However, there
+	are some prism2.5-based USB adapters, most notably the Linksys
+	WUSB v2.5.  The other versions (1.0, 2.6, 3.0) are based on
+        ATMEL chipsets.  Another supported USB device is the Actiontec
+	802UI3.
+
+Q: My prism2.5-based USB adapter won't work!
+
+	An excellent guide can be found at:
+
+	http://www.fuw.edu.pl/~pliszka/hints/prism2.html
+	
+Q: My prism2.5-based USB adapter won't come up if it's plugged in at boot! 
+
+	Thanks to buggy firmware, it is often necessary to perform a
+        device reset on initialization.  You can perform this by adding
+        "options prism2_usb prism2_doreset=1" in your /etc/modules.conf
+
+	Intersil has released Primary firmware 1.1.2, which seems to
+	have resolved this problem, at least on our test machines.
+
+Q: My PC crashes when the USB device is plugged in!
+
+	This is a result of the port reset necessitated by buggy firmware.
+
+	You are probably using the 'usb-uhci' driver with an intel
+        chipset.  Unfortunately, the crashes happen deep within the USB
+        core, so there's nothing the linux-wlan-ng driver can do.
+
+	In the mean time, try using the 'uhci' host controller driver
+        instead ("alias usb-controller uhci" in /etc/modules.conf), or
+        plug the USB device into a hub.
+
+	Linux kernel 2.4.19 is known to improve the situation somewhat,
+	but the right way to fix it is to turn off the port reset
+	(options prism2_usb prism2_doreset=0).  The current firmware
+	from Intersil alleviates the need to perform the reset.
+
+	UPDATE:  if you're using linux-wlan-ng 0.2.1-pre6 or newer and 
+        kernel < 2.4.22-pre, the 'uhci' driver will NOT work without a 
+        kernel patch! See:
+
+	http://lists.linux-wlan.com/pipermail/linux-wlan-devel/2003-May/002369.html
+
+Q: How come I can't transmit when in monitor mode?
+
+	You can't.  It's a fundamental "feature" of the hardware.
+
+Q: How come the /proc/net/wireless info isn't updated when in monitor mode?
+
+	The definition of "signal quality" refers to the quality of the
+	link to the associated access point.  When you're in monitor
+	mode, you're not associated, so this information is by defintion 
+	irrelevant.
+
+	And regardless, the hardware doesn't update the registers we poll to
+	obtain this information while in monitor mode.
+
+Q: What do the various monitor mode options do?
+
+	enable=[true/false]           Turn it on and off.  required.
+	channel=[1-14]                Sniff channel.  required.
+	prismheader=[true/false]      Optionally preppend a special
+                                      radio header on the packet.
+				      Defaults to off.
+	keepwepflags=[true/false]     If you had WEP configured correctly
+				      the card will perform WEP decoding.
+				      Defaults to off.
+	stripfcs=[true/false]         When true, the 802.11 FCS is not
+				      stripped from incoming packets.
+				      Defaults off.
+	truncate=[number]             Truncates the captured frame.  
+
+Q: How come iwconfig/iwspy/[random other wireless tool] doesn't work?
+	
+	linux-wlan-ng only supports a subset of the wireless
+	extensions; generally read-only things.  However, you won't
+	need any of those tools as wlan-ng comes with its own set of
+	tools that closely mirror the 802.11 spec.  Have a look
+	through the documentation and supplied scripts.
+
+	That said, if more complete (ie read/write) wireless extension
+	support is really important to you, you're more than welcome to
+	implement it and submit a patch.  
+
+	As of 0.1.16-pre1, the wireless extension plumbing has been
+	re-written, and further support is much easier now.  And many
+	more bits are hooked up now than before.
+
+Q: How do I know exactly what prism variant is on my card?
+
+	When you load the driver, you see a line which reads like:
+
+		ident: nic h/w id=0x8008 1.0.0
+                                         
+	1.0.0 is the hardware revision.  Below is a (partial) list of IDs.
+
+		0x8003, 0x8008 :  Prism2 PCMCIA
+
+		0x800b, 0x800c :  Prism2.5 PCMCIA
+		0x8012, 0x8013 :  Prism2.5 PCI
+		0x801a, 0x801b :  Prism3 PCMCIA
+		0x8021, 0x8022 :  Prism3 PCI
+		
+		0x800f, 0x8010 :  Prism2.5 USB  (3863)
+		0x801e, 0x801f :  Prism2.5 USB  (3861B)
+		0x8025, 0x8026 :  Prism3 USB
+
+Q: How do I know what firmware my card has?
+
+	After the driver is loaded and brought into ifstate=enable, you
+	will see the following lines in the kernel log: (eg dmesg |grep ident)
+
+	ident: pri f/w: id=0x15 0.3.0
+	ident: sta f/w: id=0x1f 1.7.1
+
+	In this case, the card has primary firmware 0.3.0 and secondary
+	firmware 1.7.1.  
+	
+	Or, if you are using 0.2.1-pre17 or newer:
+	'cat /proc/net/p80211/wlan0/nsd' with the card running.
+
+Q: How can I update my firmware under Linux?
+
+	Use the 'prism2dl' utility.  While it does its utmost to ensure 
+	you don't fry your card, use it at your own risk.  Even the 
+	Intersil-supplied tools fail occasionally.
+
+Q: Where can I download updated firmware for my Prism2/2.5/3-based card?
+
+	As of linux-wlan-ng 0.2.1-pre21, the ram download firmware for 
+	all supported card types is bundled with the driver.  These 
+	images cannot be flashed.
+
+	A general FAQ on firmware updating is here:
+		http://linux.junsun.net/intersil-prism
+
+	It includes links to some sites with firmware images.
+
+	We strongly recommend against flashing a new image, instead one 
+	should use the ram-download images that are loaded when the
+	driver starts, much like the Windows drivers do.
+
+	See the instructions below for getting this to work.
+
+Q: What's this about "ram downloading"?
+
+	This means the driver loads up a firmware images directly into
+	card RAM, instead of using the firmware stored in the card's 
+	flash ROM.  This lets us ensure we are using the lastest available
+	code without risking ruining the hardware due to a bad flashing.
+
+	linux-wlan-ng will automatically perform a RAM download if you have
+	the necessary firmware images.
+
+Q: Okay, I have new ram download firmware images, where do I put them?
+
+	copy the *hex files into linux-wlan-ng-XXXX/src/prism2/
+	then build and install the driver per usual.
+
+Q: Can I use my 802.11b card as an AP under Linux?
+
+	Yes, and in the true free software fashion, there are several
+	ways:
+
+	a) linux-wlan-ng supports AP operation by using special tertiary
+	   firmware on prism devices.  This firmware is not generally
+	   available, however.   Contact Intersil for licensing terms.
+
+	b) The Prism2 HostAP driver uses the special HostAP mode of the
+           prism chipsets.            http://people.ssh.com/jkm/Prism2/
+
+Q: I have a PCI adapter, and upon resuming from a suspend, the device is not
+   responsive.  
+
+	Much like you need to run some commands to bring the card to life 
+	when the PC is first booted, you also need to perform similar 
+	steps when the card comes out of suspend.   Run '/etc/init.d/wlan start'
+	and all should be well.
+
+	You'll need to be running 0.1.15-pre3 or newer for this to work
+        properly.
+
+	The prism2.5/3 chipsets do not support PCI power management, so
+	this is the best we can realistically do.
+
+Q: I have a Linksys WMP11, and under moderate to heavy traffic, I get
+   errors like "unknown port number" and "invalid frame type"
+
+	Make sure you're using the latest firmware avaliable from
+	Linksys's web site.  According to the firmware release notes:
+	
+	 "Changes were made to prevent erroneous data from being 
+          transferred over the PCI bus"
+
+	Note that this problem has also beeen confirmed on the D-Link
+	DWL-520.  You will need firmware 1.3.5 or newer to resolve this.
+
+Q:  I have a D-Link DWL-650/650+/520+ card, why doesn't it work with
+    this driver?
+
+	The DWL-650 comes in at least three flavors; older ones have grey
+	antennae, with no revision number on the back.  
+	Second-generation  has a black antenna and the back reads 
+	"H/W J3 F/W 1.x.x". Both of these will work.  The third-
+	generation, with a grey antenna, has "H/W A1, F/W x.x", and
+	will NOT work;  It has the same hardware as the "plus" series
+	of cards.
+
+	The "plus" series of cards from D-Link use the Texas Instruments 
+	ACX100/TNETW1100 chipset.  TI has not been forthcoming with 
+	programming information.  Politely ask TI and D-Link for Linux
+	drivers and/or docs.
+
+	We've been told that TI will be releasing binary-only Linux
+	drivers sometime in December.  In the mean time, return the
+	card and buy one that works with Linux.
+	
+Q: I have a Linksys WMP11 v2.7 card; why doesn't it work with this driver?
+
+	Linksys, in their grand tradition, likes to introduce completely
+	new cards but re-use the model number.  The WMP11 v2.7 utilizes the
+	Broadcomm chipset, and is not supported by linux-wlan-ng.  Politely
+	ask Linksys and/or Broadcomm for Linux drivers and/or docs.
+
+Q: What other resources are there for Wireless LANs under Linux?
+
+	http://www.fuw.edu.pl/~pliszka/hints/wireless.html
+
+	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html
+
+Q: I'm using RedHat 8.x+ (or Fedora Core), and I get this error when 
+   trying to ifup wlan0:
+
+	Error for wireless request "Set Encode" (8B2A) :
+	    SET failed on device wlan0 ; Function not implemented.
+	Error for wireless request "Set ESSID" (8B1A) :
+	    SET failed on device wlan0 ; Function not implemented.
+
+	
+	You can safely ignore this; it is there because linux-wlan-ng
+	does not currently use the wireless extension commands for
+	configuration.
+
+Q: When the prism2_cs module loads, I see the message "RequestIRQ:
+   Resource in use" and the load fails! What's going on?
+
+   Is your card a 16-bit PCMCIA card? If it is, you may need to
+   recompile your kernel with ISA bus support enabled (CONFIG_ISA=y).
+   The PCMCIA core uses ISA bus support to help determine what IRQs
+   are available for the card. Without it, the PCMCIA core may not be
+   able to select an IRQ.
+
+Q: After installing linux-wlan-ng on my RedHat 9 system, pcmcia no 
+   longer works!
+
+	This is due to a bug in the RedHat 9 pcmcia startup scripts.
+	On or about line 105 in /etc/init.d/pcmcia, remove all of the
+	'.o' suffixes on the modprobe command lines.  It should read 
+	something like this:
+
+            if [ -d $PC ] ; then
+                echo -n " modules"
+                /sbin/modprobe pcmcia_core $CORE_OPTS
+                /sbin/modprobe $PCIC $PCIC_OPTS
+                /sbin/modprobe ds
+            elif [ -d $KD ] ; then
+                /sbin/modprobe pcmcia_core
+                /sbin/modprobe $PCIC
+                /sbin/modprobe ds
+            else
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base
new file mode 100644
index 0000000..8d23a4c
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/LICENSE.svn-base
@@ -0,0 +1,563 @@
+                           MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ----------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. ''Contributor'' means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. ''Contributor Version'' means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. ''Covered Code'' means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. ''Electronic Distribution Mechanism'' means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. ''Executable'' means Covered Code in any form other than Source
+     Code.
+
+     1.6. ''Initial Developer'' means the individual or entity identified as
+     the Initial Developer in the Source Code notice required by Exhibit A.
+
+     1.7. ''Larger Work'' means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. ''License'' means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. ''Modifications'' means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+     
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. ''Original Code'' means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this License
+     is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process, and
+     apparatus claims, in any patent Licensable by grantor.
+
+     1.11. ''Source Code'' means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus any
+     associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You'' (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You'' includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control'' means (a) the power, direct or indirect, to
+     cause the direction or management of such entity, whether by contract
+     or otherwise, or (b) ownership of more than fifty percent (50%) of the
+     outstanding shares or beneficial ownership of such entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+     
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or selling
+          of Original Code, to make, have made, use, practice, sell, and
+          offer for sale, and/or otherwise dispose of the Original Code (or
+          portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes Original
+          Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code and/or
+          as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or selling
+          of  Modifications made by that Contributor either alone and/or in
+          combination with its Contributor Version (or portions of such
+          combination), to make, use, sell, offer for sale, have made,
+          and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be distributed
+     only under the terms of this License or a future version of this
+     License released under Section 6.1, and You must include a copy of this
+     License with every copy of the Source Code You distribute. You may not
+     offer or impose any terms on any Source Code version that alters or
+     restricts the applicable version of this License or the recipients'
+     rights hereunder. However, You may include an additional document
+     offering the additional rights described in Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that the
+     Modification is derived, directly or indirectly, from Original Code
+     provided by the Initial Developer and including the name of the Initial
+     Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+     
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2, Contributor
+          must include a text file with the Source Code distribution titled
+          "LEGAL'' which describes the claim and the party making the claim
+          in sufficient detail that a recipient will know whom to contact.
+          If Contributor obtains such knowledge after the Modification is
+          made available as described in Section 3.2, Contributor shall
+          promptly modify the LEGAL file in all copies Contributor makes
+          available thereafter and shall take other steps (such as notifying
+          appropriate mailing lists or newsgroups) reasonably calculated to
+          inform those who received the Covered Code that new knowledge has
+          been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+          (c) Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely to
+     look for such a notice.  If You created one or more Modification(s) You
+     may add your name as a Contributor to the notice described in Exhibit
+     A.  You must also duplicate this License in any documentation for the
+     Source Code where You describe recipients' rights or ownership rights
+     relating to Covered Code.  You may choose to offer, and to charge a fee
+     for, warranty, support, indemnity or liability obligations to one or
+     more recipients of Covered Code. However, You may do so only on Your
+     own behalf, and not on behalf of the Initial Developer or any
+     Contributor. You must make it absolutely clear than any such warranty,
+     support, indemnity or liability obligation is offered by You alone, and
+     You hereby agree to indemnify the Initial Developer and every
+     Contributor for any liability incurred by the Initial Developer or such
+     Contributor as a result of warranty, support, indemnity or liability
+     terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of the
+     Covered Code is available under the terms of this License, including a
+     description of how and where You have fulfilled the obligations of
+     Section 3.2. The notice must be conspicuously included in any notice in
+     an Executable version, related documentation or collateral in which You
+     describe recipients' rights relating to the Covered Code. You may
+     distribute the Executable version of Covered Code or ownership rights
+     under a license of Your choice, which may contain terms different from
+     this License, provided that You are in compliance with the terms of
+     this License and that the license for the Executable version does not
+     attempt to limit or alter the recipient's rights in the Source Code
+     version from the rights set forth in this License. If You distribute
+     the Executable version under a different license You must make it
+     absolutely clear that any terms which differ from this License are
+     offered by You alone, not by the Initial Developer or any Contributor.
+     You hereby agree to indemnify the Initial Developer and every
+     Contributor for any liability incurred by the Initial Developer or such
+     Contributor as a result of any such terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to statute,
+     judicial order, or regulation then You must: (a) comply with the terms
+     of this License to the maximum extent possible; and (b) describe the
+     limitations and the code they affect. Such description must be included
+     in the LEGAL file described in Section 3.4 and must be included with
+     all distributions of the Source Code. Except to the extent prohibited
+     by statute or regulation, such description must be sufficiently
+     detailed for a recipient of ordinary skill to be able to understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation (''Netscape'') may publish revised
+     and/or new versions of the License from time to time. Each version will
+     be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that the
+     phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL",
+     ''NPL'' or any confusingly similar phrase do not appear in your license
+     (except to note that your license differs from this License) and (b)
+     otherwise make it clear that Your version of the license contains terms
+     which differ from the Mozilla Public License and Netscape Public
+     License. (Filling in the name of the Initial Developer, Original Code
+     or Contributor in the notice described in Exhibit A shall not of
+     themselves be deemed to be modifications of this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom You
+     file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License shall,
+     upon 60 days notice from Participant terminate prospectively, unless if
+     within 60 days after receipt of notice You either: (i)  agree in
+     writing to pay Participant a mutually agreeable reasonable royalty for
+     Your past and future use of Modifications made by such Participant, or
+     (ii) withdraw Your litigation claim with respect to the Contributor
+     Version against such Participant.  If within 60 days of notice, a
+     reasonable royalty and payment arrangement are not mutually agreed upon
+     in writing by the parties or the litigation claim is not withdrawn, the
+     rights granted by Participant to You under Sections 2.1 and/or 2.2
+     automatically terminate at the expiration of the 60 day notice period
+     specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b) and
+     2.2(b) are revoked effective as of the date You first made, used, sold,
+     distributed, or had made, Modifications made by that Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all
+     end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
+     INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+     EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a ''commercial item,'' as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer
+     software'' and ''commercial computer software documentation,'' as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if any,
+     provides otherwise), excluding its conflict-of-law provisions. With
+     respect to disputes in which at least one party is a citizen of, or an
+     entity chartered or registered to do business in the United States of
+     America, any litigation relating to this License shall be subject to
+     the jurisdiction of the Federal Courts of the Northern District of
+     California, with venue lying in Santa Clara County, California, with
+     the losing party responsible for costs, including without limitation,
+     court costs and reasonable attorneys' fees and expenses. The
+     application of the United Nations Convention on Contracts for the
+     International Sale of Goods is expressly excluded. Any law or
+     regulation which provides that the language of a contract shall be
+     construed against the drafter shall not apply to this License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly, out
+     of its utilization of rights under this License and You agree to work
+     with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF
+     ANY KIND, either express or implied. See the License for the specific
+     language governing rights and
+     limitations under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms of
+     the _____ license (the "[___] License"), in which case the provisions
+     of [______] License are applicable  instead of those above.  If you
+     wish to allow use of your version of this file only under the terms of
+     the [____] License and not to allow others to use your version of this
+     file under the MPL, indicate your decision by deleting  the provisions
+     above and replace  them with the notice and other provisions required
+     by the [___] License.  If you do not delete the provisions above, a
+     recipient may use your version of this file under either the MPL or the
+     [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+
+     -----------------------------------------------------------------------
+
+     AMENDMENTS
+
+     The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla
+     Public License Version 1.1 with the following Amendments, including
+     Exhibit A-Netscape Public License.  Files identified with "Exhibit
+     A-Netscape Public License" are governed by the Netscape Public License
+     Version 1.1.
+
+     Additional Terms applicable to the Netscape Public License.
+          I. Effect.
+          These additional terms described in this Netscape Public
+          License -- Amendments shall apply to the Mozilla Communicator
+          client code and to all Covered Code under this License.
+
+          II. ''Netscape's Branded Code'' means Covered Code that Netscape
+          distributes and/or permits others to distribute under one or more
+          trademark(s) which are controlled by Netscape but which are not
+          licensed for use under this License.
+
+          III. Netscape and logo.
+          This License does not grant any rights to use the trademarks
+          "Netscape'', the "Netscape N and horizon'' logo or the "Netscape
+          lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
+          "Smart Browsing" even if such marks are included in the Original
+          Code or Modifications.
+
+          IV. Inability to Comply Due to Contractual Obligation.
+          Prior to licensing the Original Code under this License, Netscape
+          has licensed third party code for use in Netscape's Branded Code.
+          To the extent that Netscape is limited contractually from making
+          such third party code available under this License, Netscape may
+          choose to reintegrate such code into Covered Code without being
+          required to distribute such code in Source Code form, even if such
+          code would otherwise be considered ''Modifications'' under this
+          License.
+
+          V. Use of Modifications and Covered Code by Initial Developer.
+               V.1. In General.
+               The obligations of Section 3 apply to Netscape, except to the
+               extent specified in this Amendment, Section V.2 and V.3.
+
+               V.2. Other Products.
+               Netscape may include Covered Code in products other than the
+               Netscape's Branded Code which are released by Netscape during
+               the two (2) years following the release date of the Original
+               Code, without such additional products becoming subject to
+               the terms of this License, and may license such additional
+               products on different terms from those contained in this
+               License.
+
+               V.3. Alternative Licensing.
+               Netscape may license the Source Code of Netscape's Branded
+               Code, including Modifications incorporated therein, without
+               such Netscape Branded Code becoming subject to the terms of
+               this License, and may license such Netscape Branded Code on
+               different terms from those contained in this License.
+
+          VI. Litigation.
+          Notwithstanding the limitations of Section 11 above, the
+          provisions regarding litigation in Section 11(a), (b) and (c) of
+          the License shall apply to all disputes relating to this License.
+
+     EXHIBIT A-Netscape Public License.
+
+          ''The contents of this file are subject to the Netscape Public
+          License Version 1.1 (the "License"); you may not use this file
+          except in compliance with the License. You may obtain a copy of
+          the License at http://www.mozilla.org/NPL/
+
+          Software distributed under the License is distributed on an "AS
+          IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+          implied. See the License for the specific language governing
+          rights and limitations under the License.
+
+          The Original Code is Mozilla Communicator client code, released
+          March 31, 1998.
+
+          The Initial Developer of the Original Code is Netscape
+          Communications Corporation. Portions created by Netscape are
+          Copyright (C) 1998-1999 Netscape Communications Corporation. All
+          Rights Reserved.
+
+          Contributor(s): ______________________________________.
+
+          Alternatively, the contents of this file may be used under the
+          terms of the _____ license (the "[___] License"), in which case
+          the provisions of [______] License are applicable  instead of
+          those above.  If you wish to allow use of your version of this
+          file only under the terms of the [____] License and not to allow
+          others to use your version of this file under the NPL, indicate
+          your decision by deleting  the provisions above and replace  them
+          with the notice and other provisions required by the [___]
+          License.  If you do not delete the provisions above, a recipient
+          may use your version of this file under either the NPL or the
+          [___] License."
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..1364886
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,148 @@
+# Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+DIRS = src doc man etc
+
+CTAGOPTS = --totals -I '__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS'
+ETAGS=etags
+ETAGSOPTS=-a
+
+
+default: all
+
+help:
+	@echo "Pick one of the following targets:"
+	@echo -e "\tmake config\t\t- interactive configure"
+	@echo -e "\tmake auto_config\t- automated configure"
+	@echo -e "\tmake default_config\t- automated configure using default config file"
+	@echo -e "\tmake all\t\t- build modules and programs"
+	@echo -e "\tmake install\t\t- install modules and programs"
+	@echo -e "\tmake clean\t\t- remove old binaries and dependency files"
+	@echo -e "\tmake mrproper\t\t- 'make clean' + remove config file"
+	@echo -e "\tmake tags\t\t- generate ctag files for source code"
+	@echo -e "\tmake TAGS\t\t- generate etag files for source code"
+	@echo " "
+
+help_noconfig:
+	@echo "You need to configure the source first"
+	@echo "Pick one of the following targets:"
+	@echo -e "\tmake config\t\t- interactive configure"
+	@echo -e "\tmake auto_config\t- automated configure"
+	@echo -e "\tmake default_config\t- automated configure using default config file"
+	@echo -e "\tmake help\t\t- show information about other targets"
+
+all:    config.mk
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d ; done
+
+distclean: mrproper
+
+mrproper: clean
+	rm -f config.out
+	rm -f tags.linux tags TAGS
+
+clean:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean ; done
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags 
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	rm -f config.mk config.new
+	rm -f src/include/wlan/version.h
+
+install:
+	find . -name .depend -exec rm {} \;
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d install ; done
+
+auto_config:
+	@touch config.mk config.new
+	@rm -f config.mk config.new
+	@./Configure -d
+
+default_config:
+	@touch config.mk config.new
+	@rm -f config.mk config.new
+	@./Configure -d ./default.config
+
+config:
+	@touch config.mk
+	@./Configure
+
+config.mk: config.out
+	$(MAKE) auto_config
+
+config.out:
+	@$(MAKE) help_noconfig
+	@exit 1
+
+tags: tags.linux dummy
+	if [ -r tags.linux ]; then cp tags.linux tags; fi 
+	find . \
+		-name '*.[ch]' -o \
+		-name '*.mk' -o \
+		-iname 'Makefile' | \
+		xargs ctags -a $(CTAGOPTS)
+
+tags.linux:
+	if [ -h linux ]; then \
+		find linux/include \
+			-type d \( -name 'asm-*' -o -name config \) \
+			-prune -o \
+			-name '*.h' -print | \
+			xargs ctags -a -f $@ $(CTAGOPTS) && \
+		find linux/kernel linux/drivers linux/mm linux/fs \
+			linux/net linux/ipc linux/lib linux/init \
+			-name '*.[ch]' | \
+			xargs ctags -a -f $@ $(CTAGOPTS); \
+	fi
+
+TAGS: dummy
+	rm -f TAGS
+#	if [ -h linux ]; then cp linux/TAGS TAGS; fi 
+	{ find . -name '*.[ch]' -print ; \
+	  find . -name '*.[ch]' -print ; \
+	  find . -name '*.mk' -print ; \
+	  find . -iname 'Makefile' -print ; } | $(ETAGS) - $(ETAGSOPTS)
+
+dummy:
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base
new file mode 100644
index 0000000..f81303c
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/README.svn-base
@@ -0,0 +1,321 @@
+* README
+*
+* Copyright (C) 2001 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+=======================================================================
+Description:
+The linux-wlan package is a linux device driver and subsystem
+package that is intended to provide the full range of IEEE 802.11 MAC
+management capabilities for use in user-mode utilities and scripts.
+The package currently supports the Intersil 802.11b Prism2, Prism2.5, 
+and Prism3 reference designs for PCMCIA, PCI, and USB.  Additionally,
+the package includes support for PLX9052 based PCI to PCMCIA adapter
+with a few different PCMCIA cards.
+
+For a list of elements that are still undone, see the TODO file in 
+this directory
+
+=======================================================================
+License:
+See the COPYING and LICENSE files.
+
+=======================================================================
+Top level directory for linux-wlan-ng:
+./add-ons	- additional programs that are not build from the 
+                  top level make file
+./doc		- source distribution documentation
+./etc		- scripts used at run-time
+./man		- man pages
+./scripts	- contributed scripts that may do useful things
+./src		- source code for various components
+
+=======================================================================
+Build Instructions:
+
+NOTE: You may not need to build at all.  Binary packages are
+available for various distributions.  See the FAQ for where to go.
+
+NOTE: This release supports building four different drivers:
+
+   prism2_cs	Driver for Prism2.x & Prism3  PCMCIA cards.
+   prism2_pci	Driver for Prism2.5 (ISL3874) based _native_ PCI cards.
+   prism2_plx	Driver for Prism2.x PCMCIA cards when used with 
+		a PLX9052 PCI/PCMCIA adapter.
+   prism2_usb   Driver for Prism2.x USB adapters.
+
+
+Prerequisites:
+
+To build linux-wlan-ng you will need:
+   - Configured kernel source code for the kernel you are running.  
+     Ideally, this will be the resulting tree after building your own 
+     kernel.  Configured means that you have at least run 'make config',
+     'make menuconfig', or 'make xconfig'.  If you are trying to build
+     linux-wlan-ng for a previously existing kernel binary (one you did 
+     not build yourself), look for help on the mailing lists because it 
+     can be tricky.  I always run against kernels I've built myself, so I'm 
+     not much help in this area.
+   - The good David Leffler identified that if you are having difficulty
+     with *_netlink_* symbols, you may have a problem with 'make clean' in
+     the kernel tree.  Do a 'make mrproper' followed by 'make config' 
+     and the rest of the kernel build process.  'make mrproper' does
+     a more thorough cleaning of the kernel tree.  For more info, look
+     for David's comments in the linux-wlan-user mailing list.
+   - If you are building a driver for a PCMCIA card, you will also need
+     the configured PCMCIA source code for the pcmcia_cs subsystem you
+     are currently running.
+
+Building linux-wlan-ng:
+
+1)  untar the package using the command:
+
+    tar zxvf linux-wlan-ng-X.Y.Z.tar.gz
+
+2)  Make sure you have configured kernel and (optionally) pcmcia sources on 
+    your system.  Note that if you are _only_ building the prism2_pci,
+    prism2_plx, or prism2_usb drivers you don't need the pcmcia-cs 
+    source tree.
+
+3)  To configure the linux-wlan-ng package, run 'make config'.  The 
+    following set of questions will be asked. The default answer is in
+    braces (e.g. []).  Just press <Enter> to select the default answer:
+
+   - "Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]: "
+        Select "y" if you want to build the Prism PCMCIA driver.
+        If you select "n", the PCMCIA related questions below
+        will not be asked.
+
+   - Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        PLX PCI9052 PCI/PCMCIA adapter based solutions.
+
+   - Build Prism2.5 native PCI (_pci) driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        Prism2.5 ISL3874 based native PCI cards.  This includes
+        PCI add-in cards and the mini-pci modules included in some
+        notebook computers (but not all, some use internal USB modules).
+
+   - Build Prism2.5 USB (_usb) driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        Prism2.5 ISL3873 based USB adapters.  This includes
+        USB add-on modules and the internal modules included in some
+        notebook computers.
+
+   - Linux source directory [/usr/src/linux]: 
+        The config script will attempt to automagically find your kernel
+        source directory.  If found, the kernel source source directory
+        will be presented as the default selection.  If the default
+        selection is wrong, you may correct it here.
+
+   - pcmcia-cs source dir [/usr/src/pcmcia-cs-3.1.29]: 
+        If the "_cs" driver is selected above, the configure script will
+        attempt to present a reasonable default for the pcmcia source
+        directory.  If the presented directory is incorrect, you may
+        change it here.  If the "_cs" driver is not selected, this
+        prompt will not appear.
+
+   - PCMCIA script directory [/etc/pcmcia]: 
+        If the "_cs" driver is selected, this prompt allows you to 
+        change the location where the pcmcia scripts will be installed.
+        Only do this if you have installed the rest of the pcmcia_cs
+        scripts to a non-default location.
+
+   - Alternate target install root directory on host []:   
+        This prompt allows you to specify an alternative root directory
+        for the install process.
+
+   - Module install directory [/lib/modules/2.2.20]: 
+        Select where you want the driver modules to be installed.  The
+        script constructs a default location using the output of uname.
+        If you have not yet installed the kernel you will run linux-wlan
+        with, and the new kernel has a different version string, you will
+        need to change this value.
+
+   - Prefix for build host compiler? (rarely needed) []: 
+        When cross-compiling or using different compilers for kernel and
+        user-mode software, it is sometimes (but rarely) necessary to 
+        specify a different compiler prefix to use when compiling the 
+        _tools_ that are built to run on the build host during the 
+        linux-wlan-ng build process.
+
+   - Build for debugging (see doc/config.debug) (y/n) [y]: 
+        This option enables the inclusion of debug output generating
+        statements in the driver code.  Note that enabling those statements
+        requires the inclusion of insmod/modprobe command line arguments
+        when loading the modules.  See the document doc/config.debug
+        for more information.
+
+
+5)  To build the package, run 'make all'
+
+6)  To install the package, run 'make install' (as root).
+
+=======================================================================
+Configuring:
+
+NOTE:  linux-wlan-ng does not fully implement the wireless extensions
+       interface.  This means that you can't use iwconfig and its kin to 
+       set things up.  Instead, read on!
+
+As of linux-wlan-ng 0.1.16-pre5, the configuration and launch scripts have
+been largely re-written.  pcmcia/rc/hotplug now all use a common library 
+of routines and use the same set of configuration files.
+
+Now, everything relevant exists in /etc/wlan/*
+
+/etc/wlan/wlan.conf:
+
+	This file maps between wlan devices and network IDs, and contains
+	the names of all devices that should be initialized by the hotplug
+	and rc scripts.
+
+/etc/wlan/wlancfg-*
+
+	These files are per-network configurations.  This makes it easy to 
+	switch between different SSIDs and the various settings they may
+	require, like WEP keys and whatnot.
+
+The bare minimum you need to do to configure your system after a fresh driver
+install:
+
+0)  Nothing whatsoever.  out-of-the-box, the driver will attempt to associate
+    with any access point within range.
+
+However, we highly recommend setting up a configuration specifically for
+your network, using the following method:
+
+0)  This example assumes your network name/SSID is "MyHomeNetwork"
+1)  cp /etc/wlan/wlancfg-DEFAULT /etc/wlan/wlancfg-MyHomeNetwork
+2)  edit /etc/wlan/wlan.conf and change the SSID_wlan0 line to:
+	SSID_wlan0="MyHomeNetwork"
+3)  edit /etc/wlan/wlancfg-MyHomeNetwork, and make any necessary changes 
+    necessary to support your network, such as WEP and whatnot.
+
+------------------------------
+FOR PCMCIA USERS:
+A)  Edit /etc/pcmcia/network.opts file to set up your IP settings. 
+    Note: for a station, the SSID you're connecting to will be appended to the 
+    current pcmcia scheme name.  You can use this to have different
+    IP setups for different wireless LANs you connect to (e.g. home vs. work).
+
+    Note2:  This only applies if you are using a stock pcmcia-cs 
+    package.  Most (if not all) distros use their own mechanisms for 
+    configuring pcmcia network interfaces, and thus 
+    /etc/pcmcia/network.opts may not even be present.
+
+B)  Restart pcmcia-cs with the command:
+
+    /etc/rc.d/init.d/pcmcia restart
+
+C) Insert the card.  For most cards, a solid LED indicates that the 
+    SSID you specified was found, a bss was joined, and the firmware 
+    completed the authenticate and associate processes.
+
+D) Run ifconfig and route to determine if your IP and route settings are
+    listed as you wanted them.  It's also a good idea to look at the file
+    /etc/resolv.conf to see if your nameserver address has been set up 
+    correctly.
+
+------------------------------
+FOR PCI, PLX, OR USB USERS:
+A) You must make sure that the drivers get loaded at boot time and that the 
+   necessary initialization takes place.  The simplest way to do this is
+   to add the following commands to your rc.local file:
+
+     modprobe prism2_pci   [or prism2_usb/prism2_plx]
+     wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
+     wlanctl-ng wlan0 lnxreq_autojoin ssid=<your APs SSID> authtype=opensystem
+     ifconfig wlan0 <yourIP> netmask <yourNetmask> broadcast <yourBroadcast>
+     route add default gw <yourGateway>
+
+   Also, don't forget to set up your resolv.conf to point at your DNS server.
+
+B) Alternatively, you can use the rc.wlan script, which ties into the 
+   /etc/wlan/* configuration files mentioned above.
+
+   We currently don't create the softlink from the runlevel directories to
+   the wlan startup script due to differences in distributions, but the
+   scripts are redhat-aware, and can be extended to hook into other tools
+   easily.  (patches welcome!)  Just make sure it is brought up early in 
+   the process, namely, before the the network interfaces are brought up. 
+
+C) Add an alias for wlan0 in /etc/modules.conf.  For example, a usb 
+   interface on wlan0 would be set up as:
+
+   alias wlan0 prism2_usb
+
+   Substitute prism2_plx or prism2_pci as appropriate.
+
+------------------------------
+FOR USB USERS:
+
+A) Make sure your kernel usb support is running
+B) Plug in the Prism2.x USB device
+C) Run 'modprobe prism2_usb prism2_doreset=1' to load the driver into memory.
+D) Run 'wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable' to initialize the
+   driver+MAC functions.
+E) Run 'wlanctl-ng wlan0 lnxreq_autojoin ssid=<your ssid> authtype=opensystem'
+   to enable the MAC in Infrastructure Station mode.
+F) Run 'ifconfig wlan0 <your IP address>'
+
+Or, you can use the provided hotplug scripts, if your distribution has
+hotplug support.  :) 
+
+IMPORTANT: Due to an issue with some versions of the Prism USB firmware,
+the driver usually needs to perform a port reset.  
+
+Some combinations of usb low-level drivers, kernel releases, and
+hardware don't like this, and usually end up generating a kernel OOPS.
+newer kernels are much better in this regard.  In particular, Intel usb
+controllers are the most trouble-prone.
+
+The OOPS is due to bugs in the linux USB core, and newer kernels
+(2.4.19 and later) behave much better in this regard.
+
+However, the good news is that primary firmware 1.1.2 seems to resolve
+the need for the port reset to begin with.  Contact your vendor to
+request this update.
+
+Also, using the 'Alt. UHCI' controller driver (uhci.o) is broken with 
+kernels older than 2.4.22 due to a bug in the controller driver.
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base
new file mode 100644
index 0000000..b32691f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/THANKS.svn-base
@@ -0,0 +1,147 @@
+Linux WLAN package
+
+CONTRIBUTORS
+This project was initially developed for personal interest and use.
+It has since evolved into it's current state through the support and
+contributions of many individuals who have taken an interest in this
+project.  We appreciate the source code contributions and bug fixes
+from those who didn't want to wait on us and fearlessly dived into
+the source code to either add a feature or fix a bug.  
+
+Contributions to the project are not limited to source code
+and bug fixes.  Addtitional contributions include (but not limited to)
+reporting bugs, documentation, test results, helpful and enlightening
+dicussions on the project's mailing lists, kind words and feedback
+from users as well as commercial support for the project.
+
+Additionally, we'd like to thank the vendors who have contributed
+wireless network cards for testing the driver.  To see a listing of
+supported wireless cards, visit the Linux WLAN Project page at our
+web site.   http://www.linux-wlan.com
+
+Below are some of the contributors to the project.  Contributions are
+made often.  Therefore, the list is never "current" even in the 
+most recent release of the project.  ;-)
+
+This list includes contributors to the original linux-wlan Prism1 
+driver as well as contributors to this package.
+
+deadparrot - an anonymous contributor who's been an enormous help.
+             You know who you are.
+Robert Coie <irac@intrigue.com>
+Geoff Hibble <ghibble@adevice.com>
+Yoshimura Haba <haba@melcoinc.co.jp>
+Dries Buytaert <s965424@uia.ua.ac.be>
+Derrick Brashear <shadow@dementia.org>
+Tony Awtrey <tony@awtrey.com>
+Peter Teuben <teuben@astro.umd.edu>
+hong <u4830467@ug.ee.tku.edu.tw>
+Greg Smith <gsmith@westnet.com>
+Peter Kundrat <kundrat@pkx.sk>
+James Hicks <jamey@crl.dec.com>
+Erik Kunze <Erik.Kunze@fantasy.muc.de>
+Larrick, Douglas <Doug.Larrick@compaq.com>
+Cagle, John <John.Cagle@compaq.com>
+Rob Braun <bbraun@synack.net>
+Terry Griffin <griffint@pobox.com>
+Ken Gordon <ken@magneticscrolls.com>
+Pavel Roskin <proski@frontpath.com>
+Scott Franzyshen <sfranzyshen@lazerlink.net>
+Will Woods <Will.Woods@compaq.com>
+Bill Carr <Bill.Carr@compaq.com>
+David Hsu <davidhsu@ficnet.net>
+Alessandro <acevirgil@inwind.it>
+Jouni Malinen <jkmaline@cc.hut.fi>
+Bob James<bob.james@rebel.com>
+Calvin Fang <cfang@otcwireless.com>
+Jim Suhr <jimrsuhr@earthlink.net>
+Vragor <vragor@home.com>
+Chris Rankin <rankinc@pacbell.net>
+Michael Carmack <karmak@karmak.org>
+Mark Taylor <mt@mp3dev.org>
+Ben Gertzfield <che@debian.org>
+Daniel Lyddy <sprocket@path.berkeley.edu>
+Bryan Smith <b.j.smith@ieee.org>
+Stuffed Crust <pizza@shaftnet.org> (aka Solomon Peachy)
+Reyk Floeter <reyk@synack.de>
+Adam Richter <adam@yggdrasil.com>
+Collin Mulliner <wlan@betaversion.net>
+Mike Kershaw <dragorn@nerv-un.net>
+David Leffler <dleffler@lynku.net>
+Godmar Back <gback@stanford.edu>
+Jean Tourrilhes <jt@hpl.hp.com>
+Erik McKee <camhanaich99@yahoo.com>
+Jack Diedrich <jackdied@yahoo.com>
+Caz Yokoyama <caz@caztech.com>
+Matthias Welwarsky <matze@stud.fbi.fh-darmstadt.de>
+David Brownell <david-b@pacbell.net>
+Henri Muurimaa <hezamu@tuug.fi>
+Bryan Huang <bryan.huang@bromax.com.tw>
+Tony Seward <anthony.seward@ieee.org>
+Matthias Welk <welk@fokus.gmd.de>
+Josh Wyatt <Josh.Wyatt@hcssystems.com>
+Tim Fletcher <tim@parrswood.manchester.sch.uk>
+Tim Miller <tim.miller@vanderbilt.edu>
+Remy Cool <remy.cool@smartology.nl>
+Mike Klar <mfklar@tivo.com>
+Tony Likhite <tony@likhite.net>
+David Everly <deckrider@yahoo.com>
+Nick Jafa <jafa@silicondust.com>
+James Goodwin <jamesg@Filanet.com>
+Derek Atkins <warlord@mit.edu>
+Michael Beattie <mjb@debian.org>
+Joey Hess <joey@kitenet.net>
+Clay Jones <cjones1@email.com>
+Matthew Rush <matthew@42.co.nz>
+Tom Prado <tprado@charter.net>
+Olivier Bornet <Olivier.Bornet@puck.ch>
+Ryan Veety <ryan@ryanspc.com>
+Michael Hackett <mhackett@kanayo.com>
+Pavel Kankovsky <kan@dcit.cz>
+Brad Davidson <kiloman@oatmail.org>
+Ralf Miunske <miunske@users.sourceforge.net>
+Juan Conde <juan.conde@juntadeandalucia.es>
+Ichiro Doi <ichiro@d-o-i.net>
+Jeff Chua <jchua@fedex.com>
+Chris Wilson <chris@qwirx.com>
+Daniel Jiseok Song <jssong@wooritg.com>
+Albert Pauw <apauw@chello.nl>
+Andrew Beresford <beezly@beezly.org.uk>
+Stephan M�ller <smueller@chronox.de>
+Henry Ip <henryiphk@hotmail.com>
+Andre McCurdy <armcc2000@yahoo.com>
+Allan Claghorn <aclag@sdk.ath.cx>
+Steve Berry <vze4tzdm@verizon.net>
+Dan Noe <dpn@isomerica.net>
+Natsakis Konstantinos <cyfex@wthess.net>
+Greg Weeks <greg.weeks@timesys.com>
+Francesco Bochicchio <bockman@virgilio.it>
+Federico Pellegrin <fede.evol@virgilio.it>
+Nemanja Jakovljevic <nemanjaj@sezampro.yu>
+Shiro Ninomiya <shiro@margi.com>
+Josef Kriegl <jkriegl@sensoria.com>
+Arnold Liu <asliu23@yahoo.com>
+Alain Chehikian <alain.chehikian@cegetel.net>
+Ashish <thermalvoid@yahoo.com>
+J.D. Cole <listguy@transientresearch.com>
+Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
+Colin Leroy <colin@colino.net>
+Giacomo Lozito <city_hunter@noway.it>
+Armijn Hemel <armijn@uulug.nl>
+Dan Williams <dcbw@redhat.com>
+Andrzej Turowski <andrzej@turowski_NOSPAM_.com>
+Tim Huck <duceusmeus@yahoo.com>
+Ekin Meroglu <ekin@fisek.com.tr>
+Eric Koenders <Eric.Koenders@peekglobal.com>
+Andreas Schultes <flirt@hold-clan.de>
+Victor Seva Lopez <linuxmaniac@torreviejawireless.org>
+Richard Kennedy <richard@rsk.demon.co.uk>
+Tormod Volden <lists.tormod@gmail.com>
+Karl Relton <karllinuxtest.relton@ntlworld.com>
+
+[Many, many more.  If I've overlooked you and you want to be listed here, 
+send me e-mail and I'll fix it.  I _know_ a bunch of linux-wlan contributors
+are missing.]
+
+-- Our Sincerest Thanks to all contributors, users and vendors
+	AbsoluteValue Systems, Inc.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base
new file mode 100644
index 0000000..57ac976
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/TODO.svn-base
@@ -0,0 +1,86 @@
+* TODO
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+Linux WLAN NG TODO
+- Make the command-completion interrupt driven vs busywaiting.
+- Possibly hook up DMA on the Rx side for PCI devices
+- [USB] Remove driver's port-reset when new primary firmware becomes
+  available.
+- Review changes necessary for static linking to kernel
+- Display the MAC and BBP partnum & revision at initialization time
+- Perform a more effective I/O access test and an irq test at 
+  initialization time
+- Detect dead card and perform reset and reinitialization
+- Finish the prism2 request responses for STA and AP
+  Station:
+	powermgmt
+	join
+	authenticate
+	deauthenticate
+	associate (currently only partially functional)
+	disassociate
+	reassociate
+	start
+	reset
+  Access Point
+  	deauthenticate
+	disassociate
+	reset
+
+- Finish the mibget/mibset
+  PHY MIBS
+  Prism2 specific mibs (represent all RIDs)
+
+- Add event detection and notification of daemon
+  Station:
+  	deauthenticate
+	disassociate
+	rxpwer_l2
+	rxpwer_l1
+  Access Point:
+  	associate
+	authenticate
+	reassociate
+- Add event handling scripts for the events above
+- Add AP support for power managing stations
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base
new file mode 100644
index 0000000..0f8d182
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/config.in.svn-base
@@ -0,0 +1,20 @@
+WLAN_VERSION=0
+WLAN_PATCHLEVEL=2
+WLAN_SUBLEVEL=9
+WLAN_EXTRAVERSION=
+#LINUX_SRC=/usr/src/linux
+PREFIX=
+INST_EXEDIR=/sbin
+TARGET_ROOT_ON_HOST=
+RC_DIR=/etc/rc.d
+PCMCIA_DIR=/etc/pcmcia
+SYSV_INIT=y
+INSTALL_DEPMOD=y
+WLAN_DEBUG=n
+CROSS_COMPILE_ENABLED=n
+CROSS_COMPILE=
+HOST_COMPILE=
+PRISM2_PLX=y
+PRISM2_PCMCIA=y
+PRISM2_PCI=y
+PRISM2_USB=y
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base
new file mode 100644
index 0000000..70c7573
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/.svn/text-base/scm-moved-to-git.svn-base
@@ -0,0 +1,11 @@
+On August 17, 2008 linux-wlan-ng moved to using git as its SCM.
+
+Read-only access can be obtained via:
+
+	git clone git://git.shaftnet.org/linux-wlan-ng.git
+
+gitweb access can be obtained via:
+
+	http://git.shaftnet.org/git/gitweb.cgi?p=linux-wlan-ng.git;a=summary
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES b/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES
new file mode 100644
index 0000000..f286bf6
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/CHANGES
@@ -0,0 +1,1267 @@
+* CHANGES
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+ - Fix compiles with 2.6.26 (Pavel Roskin)
+ - Add compatibility with 2.6.27+ WEXT API (Pavel Roskin)
+ - Fix misplaced variable in PCMCIA code (Pavel Roskin)
+ - Add compatibility for gfp_t and mutex APIs (Pavel Roskin)
+ - Fix non-posix find arguments in script (Mark Mathews)
+0.2.9
+ - Reduce stack usage in prism2mib_priv (Richard Kennedy)
+ - WEXT functions should return -EBUSY when the hardware is still
+   being initialized (Richard Kennedy)
+ - Use round_jiffies wherever possible (Richard Kennedy)
+ - Disallow ioctls from running until the hardware probe function has 
+   finished.   (Richard Kennedy)
+ - Fix userspace scripts to work on Fedora 8 (Chris Rankin)
+ - Perform the hardware reset/init sequence *before* we register
+   the netdevice.  (Karl Renton)
+ - Always do an ifstate_disable before a firmware load cycle.
+ - Default to wireless extension mode.
+ - Make the SIWENCODE behaivor more closely match the spec. (Tormod Volden)
+ - Apply a patch from Karl Relton that improves USB reliability.
+ - When in wlan_wext_write=1 mode, auto-transition to ifstate_enable 
+   and bypass userspace firmware load altogether.
+ - Fix bug in the GIWENCODE handler (Richard Kennedy & Tormod Volden)
+ - Support 2.6.24 kernels (modified patch from Tormod Volden)
+ - Support 2.6.23 kernels. (With apologies to Martin Dauskardt for a 
+   misapplied patch)
+ - Support "Intersil Americas USB 802.11b WLAN DEVICE" (Peter Levart)
+ - Tweaks to support Fedora 7 (Dan Williams)
+ - Support 2.6.22 kernels
+0.2.8
+ - Fix up a pile of sparse warnings (Pavel Roskin)
+ - Support 2.6.20 kernels (Pavel Roskin)
+ - Tweaks to the udev rules (Richard Kennedy)
+ - Silence a large pile of warnings with GCC4.1
+ - pt_regs is gone for USB as well on 2.6.19+ (Chris Rankin)
+ - Large WEXT patch that allows use of NetworkManager. (Richard Kennedy)
+0.2.7
+ - Fix license text in prism2dl.c (it is in fact MPL/GPL)
+ - Fix oops in wext_autojoin (Richard Kennedy)
+ - Report use of dBm for WEXT requests (Richard Kennedy)
+ - Configure script better handles PREEMPT kernels (Chris Rankin)
+ - 2.6.19+ uses a different IRQ handler function prototype.
+ - linux/config.h is no more on 2.6.19+ kernels.
+0.2.6
+ - Fix another error that affected <2.6.15 builds on some compilers
+ - Fix a cut-n-paste error that broke 2.6.18 builds.
+0.2.5
+ - 2.6.18-rc fixes.
+ - A few tweaks for Wireless-Extensions-21
+ - Fix an interrupt-related race that could lead to a crash on shutdown.
+ - Tweaks to the prism2_usb code to improve suspendability on 2.6.15+
+ - Silence many warnings under GCC 4.1
+ - prism2_cs support for 2.6.16+ (untested)
+ - Makefile fixes for 2.6.17+ 
+ - udev support for USB targets (Richard Kennedy)
+ - semaphores are deprecated as of 2.6.16 (Chris Rankin)
+ - prism2_usb build fix for 2.6.16
+ - Patches from Debian (via Victor Seva)
+   - Fix bugs in /etc/wlan/shared, including a security hole
+   - Fix build on 2.4.27 kernel
+   - Added man page for prism2dl
+ - Generate a WEXT Event when we gain/lose association.
+ - Make prism2_defer query ssid and bssid, as IBSS mode has this change.
+ - Clean up prism2_defer_timer a bit.
+ - Propogate linkstatus into p80211, and make ethtool aware of it.
+ - Eliminate wland and entire indication infrastructure.  If you want to
+   play with it, use 0.2.4.  We can put it back in if necessary.
+0.2.4
+ - USB Build fix from Chris Rankin.
+ - Add ability to install prism2 firmware seperately. (Petteri Raty)
+ - Theoretically the per-frame signal/noise figures are now in dBm.
+0.2.3
+ - WEXT 16+ fixes, which came to a head with v2.6.14+ kernels.
+ - Fix a circular symbol dependency glitch
+ - Fix a potential panic when receiving unknown CONTROL frames.
+ - get rid of p80211frm.c entirely; it's all unused code.
+ - Fix prototype for pci_suspend functions to match 2.6.11+ APIs.
+ - Build fixes for 2.6.14+
+ - Change the type of 'request_pending' to take care of warnings.
+ - Fixes for warnings generated by the 'sparse' tool (Richard Kennedy)
+ - Add an explicit README.firmware containing copyright information 
+   on the firmware images.
+ - Compile fixes for 2.6.8 (Victor Seva Lopez)
+0.2.2
+ - Fix an array overflow in the hotplug helper function.
+0.2.1-final
+ - Added in-kernel devicetable for 2.6.13+ pcmcia 
+ - Updates to bring prism2_cs into the newer 2.6 kernel APIs. 
+ - Fixes in the hotplug invocation with WEXT (Pavel Roskin)
+ - Experimentally try using usb_reset_device on 2.4 kernels too
+ - use usb_reset_device() on 2.6 kernels (Andreas Schulte)
+ - Included kludged 1.8.4 PCI/PCMCIA firmware (Pavel Roskin)
+ - PCMCIA card Ident fixes to coexist with orinioco driver (Pavel Roskin)
+ - Ignore unexpected ctlx responses. (Chris Rankin)
+ - Fix an off-by-one in scan results.
+ - Change some log priorities
+ - [usb] Fix a memory leak (Chris Rankin * Eroc Koenders)
+ - [usb] clean up the PDA Read function a bit. (Chris Rankin)
+ - [usb] Don't overwrite current CTLX URB before we're done with it. 
+   (Eric Koenders & Chris Rankin)
+ - Fix a byte-order problem when parsing scan results (Eroc Koenders)
+ - Added a mib item (lnxRSNAIE) to get/set the WPA/RSNA IE.
+ - Applied a patch from Chris Rankin which should solve the hangs with 
+   kernel preemption turned on.
+ - Cleaned up some compile warnings with GCC 3.4.x
+ - Add a background thread to fetch comms quality from hardware.
+ - Fixed a series of bad memsets in prism2dl
+ - Added id for Viewsonic USB widget (Ekin Meroglu)
+ - Eliminate the extra frame copy in the usb rx path.
+ - When issuing a start/join, set MACMODE to none as to disable 
+   transmits through the hardware.
+ - Get rid of the prism2_pci/plx 2.2.x compatibility code (Pavel Roskin)
+ - Change default behaivor of top-level Makefile (Pavel Roskin)
+ - Get rid of the #ifndef DECLARE_TASKLET cases; 2.4+ supports it.
+ - Fetch the BSSID when we get an AP_CHANGE event
+ - netif_carrier_off/netif_carrier_on at appropriate times
+ - Hook up the dot11CurrentTxPowerLevel MIB in the prism2 code.
+ - Add a default TMPDIR in case it isn't set.
+ - Removed some 2.2.x cruft
+ - CommsQuality now does the right thing with dBm values.
+ - More makefile work from Pavel Roskin
+ - A major USB patch from Chris Rankin.  This rewrites the 
+   command-queueing code to something considerably more sane.
+ - A few more Makefile tweaks
+ - Further compile warning fixes on 64-bit targets (Pavel Roskin)
+ - Fix prism2_cs on 64-bit targets (Pavel Roskin)
+ - Fix the 2.4 build (whoops)
+-pre26
+ - Fix the "no hardware found" bug in 2.6.10+ kernels
+ - Cleanups in the Makefiles and build system
+ - Fix a typo in the shared.prism2 script (Chris Rankin)
+ - Clean up build warnings with gcc 3.3 (and possibly older too)
+ - Fix a nice race condition on device registration. 
+ - Don't stop the netdev when we hit ifstate_disable.
+ - hw->state wasn't being set properly on drvr_stop, nor were we 
+   clearing the port status in all cases.
+ - Fix the "Debug: sleeping function called from invalid context"
+   under 2.6 with prism2_usb (Chris Rankin)
+ - Wireless extension SCAN support (Dan Williams)
+ - 2.6 sysfs support in the form of SET_NETDEV_DEV (Dan Willimas)
+-pre25
+ - Fix a brown-paper bag bug in the register_wlandev code. (Giacomo Lozito)
+ - Patch for the Sitecom WL-022 widget (Armijn Hemel)
+ - Build fix for ancient ETHTOOL versions
+ - build fix for old 2.4.x kernels
+-pre24
+ - Fix build on 2.6.10-rc
+ - Fix USB build on 2.6.x (x < 7)
+ - Suspend the USB driver cleanly (Colin Leroy)
+ - Fix more USB badness (Colin Leroy)
+ - scan_timeout WAY too long. (Wolfram Gloger)
+ - dev_get is no more, as of 2.6.10-rc2 -- switch to dev_alloc_name 
+   instead, which is present in older kernels. (reported by Colin Leroy)
+-pre23
+ - Fix badness in 2.6.10-rc1 (Colin Leroy)
+ - Compile fix for 2.6.9-rc4+ (Jeff Chua)
+-pre22
+ - Add support for x86-64 (and possibly other 64-bit targets) (J.D. Cole)
+ - Fix linkstate if driver reset without unloading. (Shiro Ninomiya)
+ - Rename the man pages to have a .1 extension
+ - Tweak the Configure script; change the default kernel build directory
+ - put a 'sleep 1' in the firmware load sequence to improve reliability.
+   (Arnold Liu)
+ - Add Linksys WUSB11 card ident
+-pre21
+ - Add a per frame rx structure for OOB data to be passed to p80211
+	This is a step in the right direction for a major overhaul of 
+	internal frame representation.  The prism2 driver shouldn't care 
+	about sniff headers or any of that crap; it should always pass
+	everything to p80211  (via this metadata) and the p80211conv_* 
+	functions should do that work.  It's also needed to eventually
+	support different encryption types.
+ - Added in beginnings of IWSPY support via patch from Josef Kriegl
+ - Install modules to $MOD_DIR/linux-wlan-ng instead of $MOD_DIR/kernel
+ - Primary/Secondary firmware (finally) bundled with the driver.
+ - Convert to newer 2.6 module parameter code.
+ - Fix an inverted test in GIWENCODE wireless extension (Shiro Ninomiya)
+ - Minor script fix for SSF cards (Pavel Roskin)
+ - Card idents.
+ - Fixes for SSF PCI cards; default to x16 SRAM as that's more common.
+   (download script now automatically detects hardware type)
+ - Fix script problems that result in a failed init returning success.
+ - Fix an endian-ness buglet in prism2sta.c (Federico Pellegrin)
+ - Compile fixes for 2.2.x kernels. (no tasklets or spin_lock_bh)
+ - Fix up pci resources on card init failure on plx card.
+-pre20
+ - Fix up pci resources on card init failure
+ - Ident for "ROPEX FreeLan 802.11b USB Adapter" (Francesco Bochicchio)
+ - ETHTOOL support now optional, fixes build on older kernels.
+ - Fix prism2dl to not use kernel headers to fix 2.6.3 build (Pavel Roskin) 
+-pre19
+ - Add a 'lnxind_roam' indication.
+ - minor typo in the nwepgen makefile (Pavel Roskin)
+ - More makefile fixes (Pavel Roskin)
+-pre18a
+ - brown-paper-bag fix for the 2.4 build.  And it no longer builds on 
+   2.2 thanks to an accidental makefile commit.
+-pre18
+  - Fix broken makefiles so that prism2dl and the rc script install
+  - Get rid of the txfid lock, it's not necessary.
+  - Tasklet-driven RX handlers.
+  - Further work towards a Wireless Extension-enabled future.
+    - SIWFRAG, SIWRETRY, SIWFREQ, SIWRTS implemented
+    - SIWENCODE, SIWESSID taken from zdsta-1.0.3 (needs work)
+    - SIWCOMMIT Implemented ala autojoin.
+    - write support defaults to disabled, override via module parameter
+  - fix a warning in the wireless extension code.
+  - hfa384x.h header updates
+  - Fix prism2dl to handle the S7 record being elsewhere in the image.
+    (Pavel Roskin)
+  - Fix up brown paper bag script error for SSF hardware.
+-pre17
+  - Spruce up the GIWNAME wireless extension ioctl. (Natsakis Konstantinos)
+  - Added in basic ethtool support; for link status reflection.
+  - Fixed a double-locked spinlock which deadlocked on SMP boxes.
+  - /proc/net/p80211/wlanX/nsd now has useful information about the
+    prism2 hardware/firmware revisions.
+  - eliminate the unused 'collptr' from the mib structures.
+  - Fix a bug with the pcmcia script and scanning (Dan Noe)
+  - Fix a crash on a VCC mismatch.
+  - Split out most pci/plx/pcmcia/usb specific code into their own .c files.
+  - Make prism2_cs build on 2.6.2-rc
+  - Changes to support SSF hardware.
+  - Card ident for D-Link DWL-650P1
+  - Move the prism2 link notification handler operate in scheduler 
+    context to avoid a hang in softirq context.
+  - Melco WLI-USB-KB11 USB widget added (Bela Fenyvessy)
+  - Add in x86-64 support, plus other cleanups in wlan_compat.h
+  - Support the Netgear MA311 PCI card.  (Steve Berry)
+-pre16
+  - Implement wireless extension SETCHANNEL. (SIOCSIWFREQ)
+    - Currently broken.  :)
+  - Fix several sniffing-related bugs:
+    - disable when we're already disabled
+    - no longer perform a full h/w reset when we're already enabled
+    - Vastly reduce CPU usage on channel hop.
+  - Fix a crash on unload for pci/plx widgets (Pavel Roskin)
+-pre15
+  - Minor fix for the shared script (Jeff Chua)
+  - fix "bad: schedule while atomic" bug introduced by recent 2.6.0-test 
+    kernels and wireless extensions.
+  - Switch to using spin_[un]lock_bh for the cmdlock; this way we 
+    disable the transmit bh from running while issuing a card command.
+    Also have the txframe function obtain the lock.
+  - Hawking HighDB USB Widget (Allan Claghorn)
+  - Fix a double-lock in hfa384x_cmd_notify
+  - Identity for "T-Sinus 111 USB WlAN Adapter" (Roman Koutny)
+  - Fix up alignment problems on frame rx. (Ranjit Deshpande)
+-pre14
+  - Update the HAS_HOTPLUG test to something considerably more foolproof
+  - Add ids for the Airvast Prism3 USB widget
+  - bap locking was broken when illegal parameters were passed. (Andre McCurdy)
+  - Don't use jiffies for timeouts when interrupts are disabled. (Andre McCurdy)
+  - Make the Configure script a little saner.
+  - Remove the Zydas 1201 USB widget.  Use the Zydas modified 
+    linux-wlan-ng release instead (we hope to merge it in eventually)
+-pre13
+  - Fix two big-endian bugs in the scan code.
+  - Hotplug agent executes '/sbin/ifup INTERFACE' if possible.
+  - Planex GW-US11H USB adaptor (Henry Ip)
+  - Averatec USB Wlan Adapter (Stephan Miller)
+  - D-Link DWL-122 USB widget (Andrew Beresford)
+  - ASUS-WL140 Wireless USB widget
+  - Fix the WLAN_LOG_NOTICE macro for gcc 2.95.x
+-pre12
+  - Fix up endian bugs in lnxerq_commsquality.
+  - Get rid of the pcmcia release timer for >2.6.0-test5
+  - Card ident for 'ZyDAS ZD1201 Wireless USB Adapter' (Albert Pauw)
+  - More tweaks for 2.6.0-test4
+  - fix some bash-isms in /etc/wlan/shared (Daniel Song)
+  - Collapsed the BOUNDEDINT and INT types into one.
+  - Eliminated the WLAN_LOG_***0() macros at long last thanks to CPP 
+    trickery.  Also eliminated more cruft from wlan_compat.h
+  - Card ident for the Samsung SWL-2210P PCI card
+  - Try not to schedule a USB endpoint reset if there's one already 
+    pending. (Chris Rankin)
+  - Fix pci/plx operation on architechures with >32bit physical address 
+    sizes. (namely mips64 & some mips32)
+  - get rid of save_flags/cli/restore_flags in prism2_cs on >2.2 builds
+    (tweaked from patch by Pavel Roskin)
+  - pci_device_id tables should not be marked __devinitdata
+-pre11
+  - support genesis mode for RAM download of primary fimware
+  - prism2_usb now builds on 2.5/2.6.  
+    - endpoint numeration removed.
+    - hfa384x_usb_corereset unimplemented for 2.5/2.6
+  - hfa384x.h updates.
+  - p80211conv_* functions should work with netdev->mtu, not MAX_ETHFRM.
+  - Simply erase the bogus '3rdparty' drivers on Mandrake systems.
+  - Card idents for Adaptec AWN-8030/AWN-8020, and Netgear MA111
+  - Strip out all 2.2.x stuff from prism2_usb, it doesn't work.
+  - add proper __devinit/__devexit/etc tags to prism2sta.c
+  - Minor USB janitorial patch from Chris Rankin.
+  - Make most card commands require superuser access (exception is 
+    mibget)  (Original patch by Pavel Roskin)
+-pre10
+  - Make the wakeup flag in the usbctlx structure volatile, as well as 
+    other wait condition variables.
+  - Make the rx_urb buffer dynamically allocated so we can re-post the 
+    URB as soon as possible.
+  - Get rid of completion.h
+  - More wlan_compat updates.
+  - Disable TXEX reporting on USB as well as TXOK.  should improve
+    stability a tad.
+  - Further 2.5 USB work.  Not quite there yet.
+-pre9 
+  - Properly initialize the prism2_cs release timer (Pavel Roskin)
+  - Eliminate the CONFIG_ISA requirement for prism2_cs (Pavel Roskin)
+  - netlink build fixes for 2.5.71
+  - Hopefully fix the 2.2.x build.
+  - More USB fixes (Chris Rankin)
+  - Compile fixes for < 2.4.20
+-pre8
+  - Fix the pcmcia breakage introduced in -pre2.  
+  - On USB widgets, only signal txcomplete if there was a tx error.
+  - Minor cleanups in the PCMCIA code.
+-pre7
+  - Add in the 'JVC MP-XP7250" USB Widget.
+  - Don't call ev_alloc on tx_complete event; only the tx urb completion.
+  - Minor tweaks to tx_timeout code
+  - More USB updates; primarily with error-handling.  (Chris Rankin) 
+-pre6
+  - On USB transmits, don't return 'success' if the tx_urb is still
+    pending.  Also don't wake the netdev queue if the tx fails.
+  - Hook up the tx watchdog timer and add a p80211-level handler.
+  - Fix compilation with older (<= 2.4.18) kernels.
+  - Another massive USB+other patch from Chris Rankin:
+    - a separate list for "finished" CTLX objects.
+    - correct (hopefully!) handling of -EPIPE errors, shamelessly copied
+      from^W^Winspired by David Brownell's usbnet driver.
+    - finished support for asynchronous commands, with proper tracking 
+      through the CTLX lifecycle, clean-up etc. Each asynchronous command now 
+      completes in its own tasklet.
+    - CTLX cancellation and error handling.
+    - further work on the timers and spin locks.
+    - clean up setconfig16() and setconfig32() functions so that they 
+      take appropriate value parameters, even if the underlying 
+      setconfig() commands don't.
+    - use an asynchronous command in setmulticast(). (CS, PCI and PLX 
+      are still synchronous; they just pretend not to be.)
+    - further clean up in the disconnect() handler. However, it's still 
+      not a good idea to remove the adapter while the 
+      prism2sta_inf_hostscanresults() function is sleeping, and the wlandevice
+      struct could easily have been freed before the p80211req_dorequest() 
+      function manages to clear the request_pending bit. It would be 
+      nice if we could cancel both of these operations when we call 
+      prism2sta_ifstate(P80211ENUM_ifstate_disable). 
+    - extra support for Linux 2.5 (task queue -> work queue).
+    - reset the link status when we stop the driver.
+  - Some work on module locking.  Not there yet, but getting better.
+  - Remove magic numbers from USB endpoint probe (Chris Rankin)
+  - Eliminate useless timer in p80211do_request, as all calls are 
+    synchronous.  Also clena up more function pointers, and a few other 
+    doodads. (Modified from patch by Chris Rankin)
+  - Track the current SSID in the wlandev; Make the WEXT stuff key from 
+    this.  Update the SSID when we get a linkstatus_connect notification.
+  - A couple of misc cleanups from Chris Wilson
+  - Cleanups in the 2.5 makefile code. (Pavel Roskin)
+  - Add in another PCI device ID, to handle Sony VAIO PCG-V505AP
+  - Make sure CONFIG_ISA is enabled for the prism2_cs build. (x86 only)
+-pre5  
+  - Get rid of generic manfids in  /etc/pcmcia/wlan.conf (Pavel Roskin)
+  - Fix the 'make install' target.
+  - only call flush_scheduled_tasks() if DECLARE_TASKLET not defined.
+    (fixes 2.5.x compile)
+-pre4
+  - More script work; mostly cleanups and other enhancements. 
+  - Substantial prism2_usb patch from Chris Rankin.
+    - using 2 Linux lists for CTLXs
+    - remove race condition and double-free with CTLXs in disconnect()
+    - initialise URBs correctly (vital for Linux 2.5+)
+    - separate callbacks for data/CTLX OUT URBs
+    - flush task queue on shutdown
+    - more thorough use of spinlocks with CTLXs
+    - set the ASYNC_UNLINK flag when it is time to unlink an URB 
+      asynchronously, and not before.
+    - ensure we stop submitting URBs once the disconnect function 
+      is called.
+  - More USB idents (Jeff Chua)
+  - Scan now uses active scans only; should speed things up a bit.
+  - Proper module init/cleanup in prism2sta.c, plus more work for 2.5.69
+  - Added in descriptions for module parameters.
+  - Major overhaul of the hotplug stuff.  Now we use our own hotplug
+    event class, and use that to kick off configuration and whatnot.
+    All device types (pci/plx/pcmcia/usb) now use this mechanism.
+    Also brings us things like unified power management (suspend/resume)
+  - Supress spurious output when setting WEP parameters.
+  - Only query PrivacyOptionImplemented if wep was enabled in the config
+    Works around an apparent firmware bug, see http://bugs.debian.org/190851
+  - Eliminate hw->name.  
+  - Card ident for NL-2511CD Plus pcmcia card.
+  - Minor tweak on pcmcia removal.
+  - Fix the USB compile on <2.4.20
+-pre3
+  - get rid of wlandev_get_index and whatnot.
+  - URB cleanup in the USB code.  (Chris Rankin)
+  - Moved host auth sequence out of interrupt context.
+  - USB paranoia checks (Chris Rankin)
+  - Partial rewrite of the USB shutdown sequence
+  - eliminate wlandev->hwremovedfn().
+  - Minor tweaks to the mib.
+  - Get rid of the horridly outdated skeleton driver.
+-pre2  
+  - Fix a crash-on-unload affecting pci and plx adapters
+  - have the init script load the module if needed.
+  - Handle the new 2.5.69+ irq handler semantics
+  - Fix 2.5 with pcmcia (Pavel Roskin)
+  - Massive cleanup of the prism2/driver/Makefile (Pavel Roskin)
+  - Don't wrap the [un]register_netdevice() calls in rtnl_[un]lock()
+    And use the [un]register_netdev() calls instead.
+  - Call the hwremoved() functions on pci/plx_remove
+  - Eliminate the prism2sta_priv_t structure.
+  - Fix a memory leak on ifstate_disable
+  - Minor changes to the USB driver
+  - Widget id for "Melco WLI-USB-KS11G" (Ichiro Doi)
+  - Function pointer syntax cleanup (Chris Rankin)
+  - Push the multicast/promisc set into the prism2 driver.
+  - Move type/multicast filtering into the p80211 layer.
+  - Format fix for p802addr_to_str (Pavel Roskin)
+  - Add a check for non-Intersil firmware.
+  - Fix a infinite recursion in the usb lowlevel code. (Chris Rankin)
+-pre1
+  - Header updates.
+  - Add a card ident for the USR 1120 USB widget (Juan Conde)
+  - Cleaner shutdown; fixed a possible leak and a race condition.
+  - Another rearrangement of the command locks, to eliminate use of the
+    spin_is_locked() call.
+  - Fix a rare deadlock with cmd_initialize (Pavel Roskin)
+  - Add a Lucent-compatible key-generator in add-ons/lwepgen
+  - Fix a stack overflow problem. (Pavel Roskin)
+  - Further monitor mode fix for control frames (Pavel Roskin)
+  - Cleanups in the dependency generation code
+  - Initial 2.5 support.  USB currently broken.
+  - Minor build system cleanups.
+0.2.0
+  - Use PSUEDOIBSS mode for monitor mode; this should eliminate spurious
+    beacon generation.  (Ryan Veety)
+  - Don't drop "unrecognized" frame types in monitor mode.
+  - Added ident for the Linksys WUSB12 (Brad Davidson)
+  - Eliminated most of the WLAN_LOG_???n macros.
+  - Minor fixups in /etc/wlan/shared
+  - Cleaned up some of the error messages in the conversion code.
+  - changed the "Host de-WEP failed" error to a debug message, as the 
+    /proc/net/wireless stats are updated to reflect undecryptable frames
+-pre10
+  - Added the p2TxPowerMax MIB item to specify the TxPower level.
+    0-30 dBm.  Needs STA>=1.7.0 or AP>=1.4.0.
+  - Clean up some spurious warnings in prism2sta.c (Pavel Roskin)
+  - A series of patches from Pavel Kankovsky, somewhat tweaked.  :)
+    - Properly set skb->mac.raw in non-monitor mode
+    - Enhancments to the p80211 frame conversion code
+    - Handle A4 frames.
+    - Don't issue linkstatus notifications in monitor mode
+    - Supress Linkstatus messages in monitor mode
+  - hfa384x.h updates for latest firmware.
+-pre9
+  - ZyXEL ZyAir B200 Wireless USB widget ID added (Paul Lacatus)
+  - Only enable interrupts in one place (hfa384x_drvr_start)
+  - Fix the startup scripts to disable WEP completely if not enabled.
+  - ALLNET 0193 USB widget ID (Kurt Huwig)
+  - Disable the hfa384x port before issuing the autojoin stuff.
+  - Fixed a subtle flaw in the 802.11->802.3 conversion code.
+  - Updates to hfa384x.h
+  - Add productinfo for dlink DRC650 from Petr Slansky.
+  - Minor changes to the rfmon code.
+  - Only notify us on linkstatus changes if it actually changes.
+  - Fixed the path the manpages were installed to.
+-pre8
+  - Properly reset the hardware state after a flash/ram download.
+  - Patch to allow escaped characters in the scan list (Derek Atkins)
+  - Re-added the txfid queue locking which somehow got dropped.
+  - Added DellTrueMobile 1180 USB ident. (Michael Hackett)
+  - Changed linkstatus messages to INFO level reporting.
+  - Ident info for the Intel Anypoint II 802.11b PCMCIA card.
+  - Added support for the SH architechure and many changes necessary for
+    2.5 support.  Modified from the patches by Ryan Veety.
+  - Compile fixes for 2.2.x introduced as part of the new hotplug support.
+  - Added man pages contributed by Joey Hess
+  - Add ident info for the Z-Com 725/726 USB Widgets.
+  - Fixes to silence GCC 3.2 warnings. (Pavel Roskin)
+-pre7
+  - Patch to fix int array mib manipulation.  (Pavel Roskin)
+  - Minor improvements to the build system.
+  - Moved RX processing to a bottom half instead of hard irq context.
+  - Further script improvements:  signal strength filtering, and some 
+    space handling stuff.  The latter is not complete yet.
+  - lnxreq_commsquality wasn't setting the status field properly on the
+    response messages.  
+  - Workaround for spurious interrupts generated before initialization
+    is complete. (Clay Jones)
+  - hotplug script now invokes 'ifup $DEVICE' if present.
+  - Minor cleanups (Pavel Roskin)
+  - Tenative SPARC support. (Olivier Bornet)
+  - After leaving monitor mode, disable the port if we had to enable it.
+  - Updates to hfa384x.h
+-pre6
+  - Further script enhancements; automatically use scan mode on hardware
+    that is known to support it properly.
+  - Fixed errors in the hotplug script, and other misc fixes.
+  - 2.2.x fixes for the new proc stuff and deferred processing stuff.
+  - Add support for the new sniff frame capture. (doc/capturefrm.txt)
+  - Get rid of some bitrot with the sniffing code.
+  - Populate the tx dropped frames statistics.
+-pre5
+  - Fixes for host scan when not currently joined.
+  - /proc support; some informational stuff is kept in /proc/wlandev/wlanX
+  - Complete rewrite of the configuration files and startup scripts.
+     hotplug(pci+usb), pcmcia, rc, everything uses same config file(s).
+     per-network configuration
+     supports scanning and automatically choosing a network from a set.
+  - Fix the TMD7160/ncp130 support so it acually works.  :)
+  - Make the BUG() call in cmd_access enabled only in debug builds.
+  - Minor makefile fixes.
+  - Microsoft MN520 PCMCIA ident info added.
+  - p2cnfShortPreamble is not a boolean value.  (Clay Jones)
+-pre4
+  - BAP access fixes for PCI platforms.  This mostly affects SMP 
+    arrangements.
+  - Back out W200 USB ident info; it's not prism-based.
+  - Patch from Tom Prado to make 'keygen' more user-friendly.
+  - bap_timeout parameter only valid on non-usb platforms
+-pre3
+  - Added Ident info for the USB Compaq/Intel W200 widget
+  - dot11req_scan requires firmware >=1.3.2.
+  - Added the "Acer Warplink USB Adapter" id.
+  - Rework the prism2sta_inf_linkstatus call to defer processing of
+    results until outside interrupt context.  Should fix the SMP
+    deadlocks seen on some machines.
+  - Rework the usb_disconnect code to hopefully alleviate the occasional
+    crash-on-disconnect some people see.  Solution is not SMP-safe yet.
+  - Add the D-Link DCF-660W ident info.
+-pre2
+  - New parameter, 'prism2_bap_timeout' to specify the timeout on
+    bap setup.  timeout*10 == timeout in microseconds.  Note that this
+    timeout occurs in spinlock context, so increasing it arbitrarily is
+    BAD!  Defaults to 1000, ie 10000us.  
+  - compile fix for prism2sta in debug mode.
+  - Only prompt for pcmcia sources if we're using non-kernel pcmcia.
+    (original patch by Beat Bolli, rewritten a bit..)
+  - Add the Linksys WCF12 CF ident info.
+  - A bunch of compile fixes for older versions of wireless extensions.
+  - Added implementations of GIWTXPOWER and GIWRETRY
+  - Some fixes to the wireless extension code (thanks to Jean Tourrilhes)
+-pre1
+  - wland was incorrectly using kernel headers in its compile. 
+  - Adhoc mode was auto-roaming onto "any" SSID.  Fixed.
+  - Implemented the dot11req_scan & dot11req_scan_results functions.
+      This, combined with more intelligent startup scripts, will allow
+      you per-network profiles.   Scripts are unwritten as yet.  :)
+  - hfa384x.h and MIB updates.
+  - Rewrote the wireless extension support code; moved to p80211 layer.
+      Now we're compatible with at least v6-v14, and everything
+      inbetween.   We hook up to the new iw_request structure, which
+      makes further wireless extension support much easier to add.
+  - Add the Microsoft MN510 USB device ID.
+  - Finally fix the 'crash on unload' problem for 2.2.x kernels with PCI.
+    Turns out the kcompat24 code wasn't quite complete.  (Matthew Rush)
+  - Cleaned up our usage of __FUNCTION__ to make gcc 3.x happy.
+  - Fix a typo in the prism2 makefile.  
+0.1.15
+  - Fix an obscure PCMCIA build problem. (modversions disabled but
+    header present, and using non-kernel pcmcia)
+-pre8
+  - Added code to optionally truncate packets in monitor mode. (Clay Jones)
+  - Fix a polarity problem with the stripfcs argument to monitor mode.
+  - Add a test to make sure wireless.h is included.
+  - Netgear MA401A card ident.
+  - Further cleanups of the build system (Makefiles)
+-pre7
+  - Include wireless.h so wireless extensions work again.  :)
+  - Work around the braindead RedHat kernel build system.
+  - Fix a class of unaligned accesses in the message structures 
+    (kernel driver) and user space parsers (wlanctl-ng, etc)
+  - Fix an unpacked struct problem that affected ARM platforms
+    (thanks to Clay Jones for spotting this one)
+-pre6
+  - Support the new auto-unknown mode present in firmware >1.3.3
+    When issuing an autojoin, we try to join a BSS, then an IBSS, and if
+    all fails, we create a new IBSS with the given parameters. 
+ 	*note*  currently disabled.
+  - Updates to hfa384x.h to reflect latest documentation
+  - Build system mini-enema.  Automagically detect kernel version,
+    pcmcia status, and modversions.  Pick up the kernel compile flags.
+  - Hopefully fixed the 'crash on unload' for 2.2.x kernels and PCI.
+  - 'p2req_join' command, see doc/wlanctl-ng.p2req_join.txt 
+    This lets you join a specific SSID.  Thanks to Clay Jones.
+  - A couple more pcmcia/cf card idents
+  - More deletions/fixes in wlan_compat.h
+-pre5
+  - Due to new hotplug code, atmel device detection removed
+  - Further cleanups in wlan_compat.h and non-kernel makefiles
+  - Debian package stuff yanked in favor of the "official" deb packages
+  - Rearranged the wireless extension support code a bit
+  - A fix for the promisc/allmulti stuff on USB devices
+-pre4
+  - Hotplug support for PCI/PLX/USB widgets
+  - A compile fix for 2.2.x (x < 18) kernels and PCI adapters
+  - Support for TMD7160-based "almost but not quite PLX" boards
+  - HP-PA support.  In theory.  Anyone care to test?
+  - pcmcia script cleanups
+  - Add ident info for the "Intel PRO/Wireless 2011B LAN USB Device"
+  - Include an almost-sane fix to the modversion madness
+  - Tweak the init order of the PCI driver structs
+-pre3
+  - Added ident info for ASUS WL-110/WL-100 cards
+  - Support for PCI power managment
+  - Fixed a wep hang on the transmit side
+  - Compile fixes; mainly for 2.2 kernels
+  - Add support for the SIOCGIWRATE wireless extension
+-pre2
+  - Restructured the driver locking.  SMP should be MUCH better now.
+  - Stripped out more dead code. (mainly FID_STACK)
+  - Fix an skb access after we call netif_rx
+  - Fixes for XScale CPUs.
+  - Added added a MiniUSB ident info
+  - Restructure of the docmd_* functions
+-pre1
+  - Host-based WEP decryption and encryption
+  - Partial rewrite of copy_to_bap.
+  - Debian package metadata updated to 3.0-STABLE. (David Everley)
+  - Stripped out a lot of crap from wlan_compat.h
+  - More atmel adapters added to the USB exclude list.
+  - James Goodwin's patch to fix a bug in the 80211conv code.
+  - The 3COM AirConnect board is a PLX adapter. 
+0.1.14
+  - Added PCI ident info for the 3Com AirConnect PCI.
+  - FCS toggle now (really) defaults to false.
+  - Added PCMCIA ident info for the 3Com AirConnect 3CRW737A/3CRW777A
+  - David Everly's patch to kernel detection in the Configure script
+  - David Everly's patch to add better debian packaging bits.
+-pre7
+  - Added kernel tags stuff.
+  - Added PCMCIA ident info for the Actiontec 802CI2 card.
+  - Added PCMCIA ident info for the Proxim RangeLAN-DS/LAN card.
+  - Endian "fixes" for PCI PowerMacs.  This fix may be relevant for other
+    BigEndian/PCI (and PLX) platforms.
+  - FCS in monitor mode now optional; defaults to off.
+  - Populate the monitor channel in the prismheader.
+-pre6
+  - monitor mode now works on USB widgets.
+  - Fix an alignment bug in the rx path.
+  - Fix a brown-paper-bag bug in the usb flash code.
+  - Explicitly enumerate the USB widget endpoints, and use 'em.
+  - REALLY fix the wlan.conf overwriting.
+  - More minor cleanups in the PCI/PLX init code.
+  - endian-ness fixes in the monitor code
+  - Applied a patch from David Everly to fix another 2.2.x compile problem.
+-pre5
+  - Add USB entries for the "Melco WLI-USB-S11 11Mbps WLAN Adapter"
+  - Don't overwrite /etc/wlan.conf if it already exists.
+  - Compile sniffing code if packet socket is modularized.
+  - Fix a typo with the init script.
+  - Fix a compile problem with 2.2.x kernels
+-pre4
+  - First bits of the SMP/locking fixes.
+  - Partial rewrite of the PCI/PLX/USB driver internals.
+  - Added a makefile for the 'addons/keygen' tool.
+  - Fixed a race condition in the USB code.
+  - Applied Godmar Back's "SSIDs with spaces" patch.
+-pre3
+  - Applied pizza's patch to remove the pb_t structure and make all 
+    802.11<->ether conversions happen in-place.  Noticeably reduces
+    cpu load.  Also includes a few misc bugfixes to the conversion code.
+  - Workaround for the kernel panic on bringing up a USB interface
+  - Applied Mike Klar's USB patch that adds support for the MIPS
+    target and should, among other things, fix WEP under USB.
+  - Added Remy Cool's patch to add the Dynalink prism2 card ids.
+  - Tim Miller's pcmcia script install path patch
+  - Applied Tim Fletcher's patch to allow compilation against
+    the newest versions of the wireless extensions. (V13)
+  - Added jwyatt's patch for the Compaq Evo N600C USB adapter thing.
+  - Per mwelk's suggestion, changed the displaystring totext to single
+    quote the strings.  Hopefully this will take care of some of the 
+    "SSID w/ space" problems.
+-pre2
+  - tseward's ID code patch for Siemens SpeedStream USB adapters.
+  - pizza's patch for dropping/ignoring frames in promisc and allmulti
+    modes.
+  - crankin's new Actiontec USB IDs.
+  - crankin's fix for wext /proc zero vs. garbage problem.
+-pre1
+  - pizza's chkconfig comment in rc.wlan.
+  - pizza's patch to add true promiscious support to 0.1.13. Also includes
+    Experimental ALLMULTI support.
+  - pizza's patch to add PF_PACKET capture and raw transmit to 0.1.13-pre2, 
+    (with toggles for WEP in sniffing and prism header)
+    NOTE: this patch _removes_ the old netlink monitor mode (sniff) interface.
+    If you're sniffing, you need to use the latest libpcap (v7.2-pre..from CVS),
+    you'll also need to build your own ethereal (0.9.0 or greater) using the
+    latest libpcap.
+  - bhuang's fix for the hfa384x_test_command() function.
+0.1.13
+-pre4
+  - crankin's revised USB ID patch.
+  - Fixed a little buggage in the p80211knetdev_set_mac_address() function.  
+-pre3
+  - crankin's patch for a bug in usb rrid, DBFENTER/EXIT, and Actiontec
+    USB IDs.
+  - hmuurimaa's ID patch for the Omnibook500 integrated USB adapter
+  - proskin's patch for MODULE_LICENSE conditional
+  - dstates (JediElite) submission (others submitted it too) for the
+    NDC PLX card.
+  - crankin's patch for src/prism2/driver/Makefile. PCI and USB were
+    linking with PLX's prism2wext.o file.  DOH!
+-pre2
+  - Synch'd the etc/pcmcia/wlan-ng scripts with the etc/wlan* scripts.
+    This should help PCI/PLX/USB Adhoc users.
+  - Added cmulliner's patch for set_mac_address(). Also changed it to
+    use dot11StationID instead of the prism2 specific mib item...Oh
+    Yeah, I also changed to comments to /*...*/  ;-)
+  - Fixed PDA reads and PDA validation.
+  - KNOWNBUG: prism2_usb + linux-2.4.17 + uhci.o : Very slow performance.
+    We need to look into having multiple posted tx and rx urbs (this is
+    also a TODO).
+  - KNOWNBUG: prism2_usb + linux-2.2.20 + uhci.o : Physically 
+    disconnecting the device causes a Panic.  The logs look like the
+    usbdev is still holding some buffers (urbs?) associated with the
+    device despite the fact that I've explicitly unlinked them.  This
+    problem does not occur on 2.4.17 and, unfortunately, I don't have
+    time to debug 2.2.20 this time around.
+  - Made all corereset() calls dependent on the prism2_doreset module
+    argument.
+  - Added corereset() support for all device types.
+  - Added the lnxreq_ifstate request message.  This request is used
+    to bring the device up to an operable state _after_ the
+    [hostbus]_probe() function is finished.  It can also be used to
+    shutdown and/or restart the driver+device.  This takes the place
+    of the "activate hardware on ifconfig up" code that was introduced
+    in 0.1.11.  This is the change that should fix most of our dhcp
+    client problems.
+  - Massive changes/cleanups to the driver init/shutdown code for all
+    device types (pcmcia|pci|plx|usb).
+  - Removed the add-ons/mibedit application from the linux-wlan-ng package.
+    We'll be re-releasing it as a separate tarball.
+  - Modified hfa384x_usb.c per dbrownell's suggestion to mark the request
+    urb's with the USB_ASYNC_UNLINK flag.  This because we're calling
+    unlink_urb() from the timer callback (intterupt context).
+  - Added arichter's patch for the RRID framelength.  It's a good catch
+    to make things truly correct.  Unfortunately, I don't think it will
+    have any effect.  Because of the 64-byte minimum, the actual RID value
+    is being transferred regardless.  Also, I don't think the RRID handler
+    in the MAC even looks at the framelen field of RRID frames.
+  - Added mwelwarsky's patch for the tx path that may fix some of the
+    "queue empty" errors.  Had to update it for 0.1.13.
+  - Added new PLX device IDs from cyokoyama's patch, but deferred the rest 
+    until we can get a clean patch against the latest release.
+  - Added pizza's v2.1 NETLINK enable/disable patch.  Note that this whole
+    NETLINK enable/disable thing is only barely tested by me.  I _always_
+    have netlink available so maintaining a separate kernel setup just to
+    test this feature is a pain.
+  - Added jdiedrich's pcmcia card ids for the Compaq ipaq PCMCIA card.
+  - Added crankin's patch fixing some more wext induced problems and adding
+    the Actiontec USB ids.
+  - Added abridgett's patch for PRIV_GENSTRING handling.
+  - Added emckee's malloc.h -> slab.h patch and made the mods to the usb
+    and wext files he missed. Some kind list soul told me
+    that the change to slab.h goes way back in the 2.2.x history, so we
+    should be OK.  If this change proves to be a problem for someone with
+    an old kernel, please submit a patch with ifdefs for the version where
+    things changed (not just the version you're using....thanks).
+  - Added jtourrhiles patch for wext reporting level and noise in dbm.
+    To enable the reporting in dbm, you must add "#define WEXT_IN_DB"
+    to the top of src/prism2/driver/prism2wext.c.
+  - Added support for the dbm-normalized RID for CommsQuality in prep
+    for working with Jean's patch.  The mibs are called p2dbmCommsQuality*.  
+    Note that this will only work for secondary firmware versions 1.2.0 
+    and higher. Earlier versions will return with a 
+    'resultcode=implementation_failure'.  Note also: The values returned
+    are signed 16-bit integers that have been stuffed into unsigned 32-bit
+    integers for the trip up to userland.  The following shell expression
+    will convert them back to the signed quantity you want:
+       if [ $val -lt 32767 ]; then
+           echo $1
+       else
+           echo $[ $1 | 0xffff0000 ]
+       fi
+  - Added mkershaw's suggestion to lengthen the wait interval for 
+    commands in hfa384x.c.
+  - Added a note to the README about dleffler's observation regarding
+    netlink troubles and using 'make mrproper'.
+  - Added gback's patch to initialize wireless extensions for non-pcmcia
+    targets.
+-pre1
+  - Fixed a patch induced (not sure which patch) Makefile syntax error.
+  - Added rfloeter's cool Wireless Extensions patch which was kindly 
+    updated to 0.1.12 by pizza.  Note that my own testing of this patch has
+    been minimal but I've had reports of folks who are using it successfully.
+    NOTE: The addition of this patch adds the requirement that Wireless
+    Extensions (version >= 10) be compiled into one's kernel.
+  - DOH! some somewhat kind soul on the lists pointed out that the keygen
+    program wasn't in the distributed tarball.  Basically, I forgot to 
+    check it into CVS, therefore the distribution build script couldn't
+    find it.  Ahem...it's now in CVS and should be included in the tarballs.
+  - Added pizza's patch fixing the "netlink disable" patch.  The 
+    p80211ind_* functions need to be handled individually instead of two
+    giant #if's, but that's a task for another day.
+  - Added theBS's patch for making the /etc stuff installation relative and
+    installing the FIXINST scripts for USB.
+  - Added crankin's SMP deadlock fix patch.
+0.1.12
+  - Added dlyddy's string.h includes and comma fix.  Changing all malloc.h's
+    to slab.h's will have to wait until I figure which kernel version marks
+    the switch so we can ifdef it.
+  - Added bgertfield's Corega support patch.
+  - I added a check to Configure so we add the CONFIG_NETLINK symbol
+    on the compile command line if necessary.
+  - proskin's patches for netlink disable when not configured in kernel,
+    mkprintstr fix, and turn off skeleton install.  The netlink patch
+    pointed out something that might be the root cause of some problems
+    with the _cs driver.  pcmcia_cs now strips the kernel CONFIG items
+    it cares about and puts them in it's own include/linux/config.h 
+    (which is symlinked to include/pcmcia/config.h).
+  - Added mtaylor's suggested close() to do_ioctl() in wlanctl.
+  - Added mkarmak's suggested change for the GL24110P device ID as
+    PCI_DEVICE_GL24110P_ALT and an additional item in the device table
+    for PLX devices.
+  - Added crankin's suggested MODULE_LICENSE statements.  Had to figure
+    out the version ifdefs myself though.  ;-)
+  - Added vragor's patch for arm updates to the Makefiles and Configure.
+  - Added jsuhr's patch of the PLX9052 irq enable code from the orinoco
+    driver.  Note: PLX contributions are highly valued here because we rarely
+    use these devices ourselves.
+  - Added cfang's PCMCIA ident info for AirEZY card.
+  - Made USB port reset in open() an option, DEFAULT IS OFF.
+  - Cleaned up the top edge of hfa384x*.c (needs some more).
+  - Added the notion of CMD vs. AUX format MAC chip addresses.
+  - Modified isgoodpdr() to accept anything less than 0x1000.
+  - Updated the wlan-ng scripts for the new open/close behavior.
+  - Fixed a bunch of issues that caused bad breakage for hot-plugging
+    the USB module.
+  - Added a module argument to enable/disable the MAC (or usbport) reset
+    performed in prism2sta_open().
+  - Moved the port reset corereset() and the call to the open(). This
+    gets the port reset out of the probe_usb() context and appears to
+    solve the recursive probe problem in some cases.
+  - Cleaned up the overlength usb packet problems
+  - Added rmemreq/resp and wmemreq/resp support
+  - Fixed some of the 64-byte packet problems in a few commands.
+0.1.11-usbonly
+  - Note: hfa384x*.c are currently undergoing some changes.  I believe
+    these changes have broken some things for pcmcia/pci/plx support.  I'm
+    not certain since I haven't tested them.  As such, this is a USB ONLY
+    release.
+  - Cleaned up the use of hfa384x_drvr_*() vs. hfa384x_cmd_*() a little.
+    This is a work in progress.
+  - Rewrote the USB request/response machine again.
+  - Added tnewsham's keygen program to the add-ons directory.  I don't
+    include it in the overall build because I'm not comfortable with making
+    this package dependent on openssl right now.  It is supposed to generate
+    keys in a manner identical to the windows software.  I have not personally
+    verified this.  If someone wants to contribute more complete build
+    instructions for this program, please do.
+  - IMPORTANT! Note that we've changed the up/down behavior.  You now
+    must 'up' the linux netdevice interface (e.g. ifconfig wlan0 up) prior
+    to using wlanctl-ng.  Also, wlanctl commands aren't available after
+    "ifconfig down".  From a low-level perspective, this is how most
+    linux netdevices work.  We originally started trying to create a 
+    setup where "ifconfig up" on an interface that wasn't associated would
+    fail.  With PCI and even more so with USB, that has proven unworkable.
+    The idea now is:
+      Step 1: ifconfig wlan0 up 
+               Enables the hardware so it's ready to handle wlanctl-ng commands.
+      Step 2: wlanctl-ng <various commands>, repeat 
+               Set up the dot11 configuration and get yourself associated or
+               whatever.
+      Step 3: ifconfig wlan0 <address>  
+               After getting a "real" 802.11 connection, assign the address
+               to the interface (via static numbers, dhcp or whatever).
+
+      Note that it is very important that you do _not_ down the interface
+      between the initial 'ifconfig up' and the later ifconfig that assigns
+      the address.  'ifconfig down' will shut down and reset the hardware.
+      If you down the interface, all that good work in step 2 will be lost.
+  - Rewrote the USB request/response machine
+  - Moved all memmapped/irq interface elements from prism2*.c to hfa384x.c
+    in preparation for adding USB support.
+  - Fixed 'make clean' so it doesn't generate .depend files.
+  - Removed some leftover pcmcia-cs dependencies for non-pcmcia targets.
+0.1.10
+  - Added module param "prism2_ignorevcc".  If set to non-zero, we just
+    accept the Voltage we get from pcmcia-cs without checking.  USE WITH
+    CAUTION!!!!
+  - Changed the voltage setting code such that we never try to change it.
+  - Added NETGEAR PCI info.
+  - Fixed a problem with the interrrupt enable in mlme_start().
+  - Fixed the netdevice_t problem.
+  - Added some new CIS entries.
+  - Fixed some byte order things re: dblythe's patch.  The problem went
+    a little farther than the patch so I had to change some things.
+  - Added lye's fix for the netdevice_t problem on various targets.
+  - Added an Ad-Hoc support patch from ????? (please identify yourself,
+    it's a nice bit of code and stays within the spirit of things).  Adhoc
+    still needs work though.  Remember, only the _first_ STA in an IBSS
+    should issue an MLME-Start.request.  All the rest should scan/join
+  - Re-added the monitor mode stuff.  At this point I guess Intersil won't 
+    be taking it out.  Many thanks to those who maintained the patches and
+    my apologies for the hassle.
+0.1.9
+  - As part of the PCI stuff, rewrote the scripts for 'fixed' (i.e. non-
+    hotswappable) cards like the ISL3874 and PLX based PCI adapters.
+  - Added support for the dot11req_reset command.  It should perform a
+    complete reset of the MAC and driver.  Note that the MAC needs to be
+    completely reconfigured from userland after the reset has occurred.
+    Also added an internal call to the reset function when unloading a
+    PCI or PLX driver.  We need this reset to make sure that the card is
+    no longer generating interrupts.  Fixed this problem:  If the driver
+    is unloaded, the card is still generating interrupts, and another active
+    device+driver is using the same interrupt....system locks up.  DDT.
+  - Rewrote the PCI support for PLX and ISL3874.  The rewrite was targeted
+    at 2.4.7 with additional code to provide backward compatibility for
+    2.2.x.  NOTE:  the PCI code still doesn't support the PCI power
+    management stuff.  It will probably need more work when laptops w/
+    the ISL3874 based mini-PCI cards show up.
+  - Whoops, forgot to put this in the original 0.1.9 release
+0.1.9-pre1
+  - Added support for the ISL3874 based mini-pci card.  Also cleaned 
+    up some of the PLX stuff (needs more work though).
+0.1.8
+  - Fixed some script bugs relating to WEP and generated keys.
+  - Fixed the autojoin auth type control
+  - Added/Changed some PDR numbers (thanks to BroMax for supplying hardware)
+  - Received a large patch from bjames of Rebel Computing.  Here's a 
+    summary in his words:
+
+     > Minor bugs (not already found in 0.1.8-pre10):
+     > 
+     > 1. p80211metamsg.c:
+     > - Wrong conversion functions for "p2req_mmi_read" (value).  enumint ==>
+     > int
+     > 
+     > 2. prism2sta.c:
+     > - "dot11_desired_bss_type" in "priv" structure left at 0 (i.e. an
+     > invalid value) after initialization so mibget could not retrieve a value
+     > unless the network was started.  Initialized to 1.
+     > 
+     > 3. prism2mgmt.c:
+     > - "prism2mgmt_channel_info()" uses HFA384x_RID_SCANREQUEST_LEN instead
+     > of ...CHANNELINFOREQUEST...  (However, they're the same size.)
+     > 
+     > 4. prism2mgmt.c:
+     > - "prism2mgmt_auxport_read()" did not set the resultcode to "success" if
+     > the read succeeded.
+     > 
+     > 5. p80211types.c:
+     > - "p80211_fromtext_displaystr()" tests for length < maxlen.  This
+     > probably should have been <= maxlen (i.e. excluding the \0), based on
+     > the maxlen values in "p80211metamib.c" and based in what
+     > "p80211_isvalid_displaystr()" checks.  Also,
+     > "p80211_isvalid_displaystr()" assumes that "pstr->len" includes the \0
+     > when it does the minlen check.  It probably shouldn't do this.
+     > 
+     > 6. p80211metamsg.c:
+     > - dot11_reassociate command has a "dot11req_reassociatefailuretimeout"
+     > argument which should probably be "reassociatefailuretimeout".
+     > 
+     > 7. prism2sta.c:
+     > - WLAN_PCI ==> WLAN_PLX in "init_module()".
+     > 
+     > Enhancements:
+     > 
+     > 1. All Prism2 RIDs are now accessible.  Unfortunately, rather a lot was
+     > changed to do this:
+     > - Rather than cut and paste many more cases into the monster
+     > "prism2mib.c" switch statement, "prism2mib.c" was completely reworked to
+     > be table-driven with a bunch of semi-generic processing functions.  That
+     > made it a lot easier to add new DIDs.  Several RID lengths in hfa384x.h
+     > had to be changed from 0 to their actual value since more of the lengths
+     > get used, now.  (Changed: prism2mib.c, hfa384x.h)
+     > - 2 new data types were added to "p80211types.c".  One to handle integer
+     > arrays (i.e. multi-word RID records...so that a DID didn't need to be
+     > added for each element) and bit arrays (just to make them easier to deal
+     > with).  However, there wasn't enough room in the packed DID to add new
+     > types, so the type was removed from the DID (and from P80211DID_MKID)
+     > and a function written to determine the type based on the conversion
+     > functions.  (Changed: p80211meta.h, p80211types.h, p80211meta.c,
+     > p80211types.c, mkmetastruct.c, p80211metamib.c p80211metamsg.c,
+     > wlanctl/help.c)
+     > Integer arrays look like: p2PRIIdentity=21,0,0,3
+     > "meta->maxlen" specifies the number of integers.
+     > Bit arrays look like: p2ChannelList=0,1,2,3,4,5,6,7,8,9,10
+     > for bits 0-10.  "meta->min" and "meta->max" give the range of bits
+     > allowed.
+     > - The "p2Table" DIDs were split into p2Static, p2Dynamic, p2Behavior,
+     > etc., in order to correspond with the Prism Driver Programmer's Manual.
+     > A few of the names were also changed in order to correspond to the
+     > manual.  (Changed: p80211metamib.c, prism2mib.c)  The changed names (of
+     > the supported DIDs) are:
+     > p2SystemScale ==> p2CnfSystemScale
+     > p2MaxDataLen ==> p2CnfMaxDataLength
+     > p2EnhancePowerSaveMode ==> p2CnfPMEPS
+     > p2MaxSleepDurection ==> p2CnfMaxSleepDuration
+     > p2PMHoldoverDuration ==> p2CnfPMHoldoverDuration
+     > p2OwnName ==> p2CnfOwnName
+     > p2McastPMBuffer ==> p2CnfMulticastPMBuffering
+     > p2TxControlDepth ==>p2CnfTxControl
+     > p2RoamingMode ==> p2CnfRoamingMode
+     > p2MMLife ==> p2CnfMMLife
+     > p2AltRetryCount ==> p2CnfAltRetryCount
+     > p2ReserveDuration ==> p2CnfAPPCFInfo (bit 1)
+     > p2ExcludeLongPreamble ==> p2CnfExcludeLongPreamble
+     > - Added new RIDS from the Prism Driver Programmer's Manual 1.70
+     > (2000-11-29).  Added p2CnfPriorityQUsage, p2CnfTimCtrl,
+     > p2CnfThirty2Tally, p2CnfEnhSecurity.  Added "algorithm" to AuthRequest.
+     > 
+     > 2. A user utility program was written to do such things as query all
+     > read-able MIBs, query all write-able MIBs, set all write-able MIBs,
+     > etc.  A "p2req_enable" command was added (similar to the
+     > "dot11req_start" command but without requiring all the 802.11
+     > arguments).  This allows the driver to be started in a straight forward
+     > manner, simply by setting all write-able MIBs and then enabling it.
+     > (Changed: p80211metamsg.c, prism2sta.c, prism2mgmt.c, prism2mgmt.h)
+     > 
+     > 3. Support added for Prism2 CommTallies and a DID added to query the
+     > values.  The values will come back as an array of integers.  Support
+     > also added for 32-bit tallies (i.e. p2CnfThirty2Tally).  (Changed:
+     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c, hfa384x.h)
+     > 
+     > 4. Access Point support:
+     > - Added support for maintaining a list of authenticated/associated
+     > stations and a DID added to query the list.  (Changed: prism2mib.c,
+     > prism2sta.c, prism2mgmt.h, p80211metamib.c)
+     > - Added support for host control of authentications (allowed and denied
+     > lists) and a DID added to set and query the lists.  Support for Prism2
+     > AuthenticationRequest information frames.  Not tested yet.  (Changed:
+     > prism2mib.c, prism2sta.c, prism2mgmt.h, p80211metamib.c)
+     > - Added support for Prism2 PowerSaveUserCount information frames and a
+     > DID added to query the value.  (Changed: prism2mib.c, prism2sta.c,
+     > prism2mgmt.h, p80211metamib.c)
+     > - Added a new data type to "p80211types.c" to handle arrays of MAC
+     > address (used to set/query the above lists).  (Changed: p80211types.h,
+     > p80211types.c, mkmetastruct.c, wlanctl/help.c)
+     > Address arrays look like:
+     > p2Authenticated=00:50:51:52:53:54,00:60:61:62:63:64,00:70:71:72:73:74
+     > "meta->maxlen" specifies the maximum number of addresses.
+     > - Unforetunately, all these lists are limited in length by the length of
+     > the mibattribute parameter in mibget/mibset.  This is not very nice but
+     > it was the quickest/easiest way to implement it.
+     > 
+     > 5. Changed maximum mibattribute length from 256 to 384 to support
+     > querying commtallies and MAC address arrays.  (Changed: p80211types.h)
+     > 
+     > 6. 128-bit WEP key support:
+     > - Rather than creating different MIB's for 64-bit and 128-bit WEP keys,
+     > the "octetstr" definition for dot11WEPDefaultKey0, etc., was changed to
+     > allow for a range of lengths (e.g. from 5 to 13).  The
+     > dot11WEP128DefaultKey0, etc., MIBs were removed.  (Changed:
+     > p80211meta.c, p80211types.c, p80211metamib.c, p80211metamsg.c,
+     > mkmetastruct.c, wlanctl/help.c)
+     > - WLAN_WEP_KEYLEN changed to WLAN_WEP_MAXKEYLEN and set to 13.
+     > (Changed: p80211hdr.h)
+     > - Optional "length" argument added to "nwepgen.c" so that either 5 or 13
+     > byte keys can be handled.  (Changed: nwepgen.c)
+     > - 128-bit-specific parts of "etc/pcmcia/wlan-ng" are no longer
+     > necessary.  Genstr changes to handle generation of 13-byte keys using
+     > nwepgen.  (Changed: etc/pcmcia/wlan-ng)
+     > - WEPDefaultKey's were made write-only.  A new
+     > "P80211ENUM_resultcode_cant_get_writeonly_mib" was added.  (Changed:
+     > p80211types.h, p80211types.c, p80211metamib.c, prism2mib.c)
+     > 
+     > 7. Access code in DID:
+     > - This was changed from a single bit flag (P80211DID_ACCESS_READONLY and
+     > P80211DID_ACCESS_READWRITE) to a pair of flags (P80211DID_ACCESS_READ
+     > and P80211DID_ACCESS_WRITE) since some MIBs are read/write, some are
+     > read-only, and some are write-only (e.g. WEP keys).  This makes it
+     > easier to determine which MIBs are read-able and write-able without
+     > having to go all the way to the driver and then interpret a failure
+     > error code.  (Changed: p80211types.h, p80211metamib.c)
+     > 
+     > 8. It was a bit of a hassle switching between the station driver and the
+     > AP driver...which we seemed to be doing a lot.  The additional cost was
+     > not particulary high to simply compile in both station functionality and
+     > AP functionality.    A change was made so that "prism2sta_initmac()" set
+     > an "ap" flag when it detected AP firmware.  "prism2mgmt.c" then uses the
+     > flag to determine whether or not to allow station-only or AP-only
+     > commands to be executed.  "prism2mib.c" also uses this to handle the
+     > mode-specific MIBs.  This made it possible for the same module to
+     > support either stations or APs, thereby simplifying the "make", the
+     > install, and switching between stations and APs.  The only thing that
+     > needs to change, is the value of "IS_AP" in "wlan-ng.opts".
+     > 
+     > 9. Miscellaneous small additions:
+     > - Network state (stopped, started) added and a DID to query it.
+     > - User-settable comment string added and a DID to set/query it.
+     > - Some event logging (authentications, associations, etc.) can be
+     > enabled/disabled at run time rather than only at compile time.  A DID
+     > was added to set/query it.
+     > - A "p2req_readcis" command (similar to "p2req_readpda") was added.
+     > 
+     > 10. Small changes:
+     > - Added bounds checking to "p80211item_fromtext_boundedint".  This was
+     > the only "fromtext" function that did not already do complete
+     > validation.  It should no longer be necessary to call the "isvalid"
+     > function if "fromtext" has just been called.  The call to "isvalid" was
+     > removed from "wlanctl".  (Changed: p80211types.c, wlanctl.c)
+     > - "p80211item_maxitemlen()" wasn't really adding much of value so it was
+     > amalgamated into "p80211item_getoffset()".  The DID type is now only
+     > checked once instead of three times.  (Changed: p80211meta.h,
+     > p80211meta.c)
+     > - "hfa384x_drvr_setconfig16()" and "hfa384x_drvr_setconfig32()" changed
+     > their input parameters when converting to hf384x byte order.  Potential
+     > source of bugs.  Changed to use a local variable.  (Changed: hfa384x.c)
+     > - ScanRequest, JoinRequest, etc., moved from the "Information Record"
+     > section to the "Configuration Record" section.  (Changed: hfa384x.h)
+     > - Re-worked "p80211_fromtext_setmibattribute()" to make it a little
+     > easier to follow the logic.  (Changed: p80211types.c)
+     > - Type of "channellist" argument in "p2req_channel_info" command changed
+     > from "octetstr" to "bitarray" to make it easier to deal with (can
+     > specify a variable number of channels and don't need to use hex
+     > values).  (Changed: p80211metamsg.c, prism2mgmt.c)
+     > - "auxctl" parameter set to HFA384x_AUX_CTL_EXTDS in
+     > "prism2mgmt_auxport_read()" and "prism2mgmt_auxport_write()" so that
+     > they are still compatible with 0.1.7.  (Changed: prism2mgmt.c)
+     > - Re-worked "prism2mgmt_set_grpaddr()" and added comments so that it's
+     > more obvious what is going on.  Also, deleted the check which produced
+     > an error if an attempt was made to delete an address from an empty
+     > list.  This makes things more consistent and predictable (i.e. the same
+     > as attempting to delete an address which is above the last group
+     > address...the attempt is simply ignored).  Replaced the "memcpy()" call
+     > with "memmove()" since "memcpy()" is not guaranteed to work with
+     > overlapping ranges.  (Changed: prism2mib.c)
+     > - Minimum length of "dot11OperationRateSet" changed from 126 to 1 to
+     > match the 802.11 standard.  (Changed: p80211metamib.c)
+
+  - Fixed some ci/co related problems pointed out by wbinjie.
+  - Added ygalayda's startup scripts for PCI in the directory 
+    ./etc/wlan_pci.  They aren't installed, that will have to be done
+    by hand.  I have not tested these scripts myself.
+  - Added sbaer's 'NULL check' fix in p80211_indicate_shutdown().
+  - Added ctedrow's 'alloc not checked' fix in prism2sta_int_rx().
+  - Added pkundrat's auth mib changes.
+  - fgrau's conf.modules/modules.conf fix.
+  - Added ygalayda's submission for the Global Sun GL24110P PLX based
+    adapter.  Also included a Makefile fix.
+  - Fixed some script bugs relating to 128-bit WEP based on smmclusky's
+    observations.  These changes have not yet been tested by me.
+  - Added rlazarev's additions to the pcmcia startup scripts
+  - Added pkundrat's wlandev-name fix for 2.3.99+ kernels
+  - Fixed some type/(to|from)text mismatches per note from pkundrat
+  - Fixed some missing MKITEMNAMEs per note from pkundrat
+  - Added D-LINK and SMC to the linux-wlan-ng.conf file
+  - Added Zoom, Linksys and Addtron to the linux-wlan-ng.conf file
+  - Added pkundrat's meta-item minlen stuff.
+  - Added conditionals for PLX vs. PCMCIA build
+  - Changed _pci driver filename to _plx
+  - Fixed undconditional MOD_INC in prismt2sta_open()
+  - Removed identification of old PCF firmware.
+  - Fixed version.h generation bug from pre5
+  - Added dhsu's (Eumitcom) code for supporting the PLX based PCI cards.
+  - pkundrat's (whoops, sorry peter) PDA display program in ./scripts.  
+    I haven't used it because my perl setup is messed up and I'm perl 
+    challenged.
+  - bcarr's patches for alpha boxes.
+  - wwoods's patches for 2.2.18 and adding bytes received to the 
+    statistics.
+  - proskin's patch adding 'network stop'
+  - Most of proskin's patch containing Configure fixes, adding file
+    existence checks, and making sure directories are present.
+  - tgriffin's patch for mrproper/memleak/nullcheck/freeonsuccess.  
+    conf.modules change is already there.
+  - Added most of jhicks ARM related patches.  I had to leave out the 
+    HOST vs. TARGET compile variables in the Makefiles though.  Some folks
+    are using that stuff.
+  - Added script changes and new mib items to support 128-bit WEP per hong's
+    suggestion.
+  - Added conf.modules alias instead of symlink
+  - Added a compat macro for kfree_s to wlan_compat.h per the suggestion
+    from rbraun.
+  - Added pkundrat's 'chinfo' patch
+  - Added pkundrat's 'small fixes' patch
+  - Added some contributed patches supporting a fix to our 'reassoc
+    under load' problem
+  - Added wlannoenable pcmcia scheme support to prevent card initialization.
+  - Removed a PDR patch requirement.
+0.1.7
+  - Fixed the "converting eth in unknown mode" bug
+  - Added APM/ACPI suspend/resume handling
+  - Added PPC support
+  - Added Prism test command support
+  - Integrated patch to fix some structure alignment problems for ARM
+  - Added multi-transmit buffer support
+  - And much, much more.....
+0.1.6
+  - Fixed usage of pcmcia scheme file so we're not stomping on the user's
+    scheme setting.
+  - Updated the wlan-ng script for the new config variable names and added
+    configurable download utility and a set of user MIB settings.
+  - Added support for the Samsung and Z-Com cards.
+  - Changed the name of the module (from pcmcia's point of view).
+  - Fixed the "echo \c" problem in Configure
+  - Added new and rearranged existing wlan-ng.opts configuration variables.
+  - Created a scheme for "addon software" in the ./src/Makefile
+  - Made some changes to the target detection conditionals in wlan_compat.h
+    to better support LinuxPPC (port isn't finished yet).
+  - Finally fixed the byteorder stuff to use (duh) byteorder.h
+  - Fixed a bad free of the TX skb when we signal an error to higher layers.
+  - Moved some code around and added rules to the prism2/driver (new directory
+    too) Makefile.  This is so we build two separate drivers; one for STA,
+    one for AP.  Both drivers are built from the same source files with
+    the code conditional on the WLAN_AP and WLAN_STA defines.
+  - Fixed the plugging in prism2dl so it reports ALL missing PDRs.
+  - Added an anonymously contributed patch that adds support for the -m
+    and -s cmdline options for prism2dl.  Thanks! You know who you are.@-)
+  - Added some fixes to the dependency file generation.
+  - Fixed a flash programming timeout miscalculation...and fixed it again 
+    when I introduced an integer promotion problem.
+  - Added the STA vs. AP conditionals to prism2mgmt.  Note that this causes
+    a few compile time warnings.  They're harmless and will go away in the
+    next release.
+  - Created the file prism2mib.c to hold all the MIB get/set stuff which is
+    getting a little out of hand.
+  - Added pcmcia config support for the Z-Com (supposedly) dual voltage card.
+    Unfortunately the engineering sample I have doesn't seem to work at 5v,
+    or it might be the code.....not sure yet.  We're still a little
+    bleeding edge with that card.
+  - Cleaned up the version, compatibility range, and serial number 
+    log messages.
+  - Added a loop limit to the interrupt handler. (duh)
+  - Changed the names of the driver modules for STA and AP.  make install
+    then creates a softlink depending on the make config selection.  One
+    note, both drivers report the same dev_info string to pcmcia-cs.  Trying
+    to load both of them simultaneously would be bad (I have no idea what 
+    would happen, I just thought of it).
+  - Changed a bunch of types and constants for hfa384x.
+  - Added functions for a couple of new commands in the hfa384x.
+  - Began adding support for the Prism2 unique MIB items.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING b/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING
new file mode 100644
index 0000000..66801bd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/COPYING
@@ -0,0 +1,57 @@
+* COPYING
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+Unless otherwise indicated, this code is distributed under version 1.1
+of the Mozilla Public License ("MPL"), included in the LICENSE file.
+
+Where this software is combined with software released under the terms
+of the GNU Public License ("GPL") and the terms of the GPL would
+require the combined work to also be released under the terms of the
+GPL, the terms and conditions of the MPL will apply in addition to
+those of the GPL with the exception of any terms or conditions of the
+MPL that conflict with, or are expressly prohibited by, the GPL.
+
+        -- AbsoluteValue Systems, Inc.
+
+Note: This file is derived from a copyrighted work of David Hinds.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure
new file mode 100755
index 0000000..7b62dd2
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Configure
@@ -0,0 +1,486 @@
+#!/bin/bash
+#
+# Configure
+#
+# linux-wlan Open Sourc Project
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# -------------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source Project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# -------------------------------------------------------------------------
+# TODO: Since we're dependent on configured pcmcia source, we should change 
+#       this such that it will ask for the pcmcia source dir and then read
+#       all our stuff from pcmcia/config.mk.  Would simplify alot of things.
+# -------------------------------------------------------------------------
+#
+# This script adapted from the pcmcia-cs/Configure file, license statement below:
+#
+# pcmcia-cs/Configure 1.110 1999/06/24 17:37:36
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and
+# limitations under the License.
+#
+# The initial developer of the Configure code is David A. Hinds
+# <dhinds@hyper.stanford.edu>.  Portions created by David A. Hinds
+# are Copyright (C) 1998 David A. Hinds.  All Rights Reserved.
+#-------------------------------------------------------------------------
+
+ECHO="/bin/echo -e "
+fail ()
+{
+	$ECHO ""
+	$ECHO "Configuration failed"
+	$ECHO ""
+	exit 1
+}
+
+usage () {
+    $ECHO "usage: Configure [-h|help|-d [filename]|-f <filename>]"
+    $ECHO ""
+    $ECHO "  -h|help       - display usage info"
+    $ECHO "  -d [filename] - automated configuration with option to specify input file"
+    $ECHO "  -f <filename> - read configuration data from file and prompt user"
+    exit 1
+}
+
+if [ ! -r config.in ]; then
+    $ECHO "config.in does not exist!"
+    fail
+fi
+
+. ./config.in
+
+if [ -r config.out ]; then
+    . ./config.out 2>/dev/null
+fi
+
+PROMPT=y
+if [ $# -gt 0 ] ; then
+	if [ "$1" = "-h" -o "$1" = "help" ] ; then 
+		usage
+	fi
+	if [ "$1" = "-d" -o "$1" = "-f" ] ; then 
+		if [ $# -gt 1 ] ; then
+			if [ -r $2 ]; then
+				. $2
+			else
+				$ECHO "$2 does not exist"
+				fail
+			fi
+		else
+			if [ "$1" = "-f" ] ; then 
+				usage
+			fi
+		fi
+		if [ "$1" = "-d" ] ; then 
+			PROMPT=n
+		fi
+	fi
+fi
+
+#=======================================================================
+
+CONFIG=config.new
+CONFIG_MK=config.mk
+rm -f $CONFIG $CONFIG_MK $MODVER
+
+cat << 'EOF' > $CONFIG
+#
+# Automatically generated by 'make config' -- don't edit!
+#
+EOF
+
+write_bool() {
+    value=`eval $ECHO '$'$1`
+    if [ "$value" = "y" ] ; then
+	$ECHO "$1=y" >> $CONFIG
+	$ECHO "$1=y" >> $CONFIG_MK
+    else
+	$ECHO "$1=n" >> $CONFIG
+	$ECHO "# $1 is not defined" >> $CONFIG_MK
+    fi
+}
+
+write_str () {
+    value=`eval $ECHO '$'$1`
+    $ECHO "$1"=\"$value\" >> $CONFIG
+    $ECHO "$1=$value" >> $CONFIG_MK
+}
+
+
+dump_str () {
+    $ECHO "$1" >> $CONFIG
+    $ECHO "$1" >> $CONFIG_MK
+}
+
+prompt () {
+    eval $3=\"$2\"
+    if [ "$PROMPT" = "y" ] ; then
+	$ECHO "$1 [$2]: \c"
+	read tmp
+	if [ -n "$tmp" ] ; then eval $3=\"$tmp\" ; fi
+    else
+	$ECHO "$1 [$2]"
+    fi
+}
+
+ask_bool () {
+    default=`eval $ECHO '$'$2`
+    if [ ! "$default" ] ; then default=n ; fi
+    answer=""
+    while [ "$answer" != "n" -a "$answer" != "y" ] ; do
+	prompt "$1 (y/n)" "$default" answer
+    done
+    eval "$2=$answer"
+    write_bool $2
+}
+
+ask_str () {
+    default=`eval $ECHO '$'$2`
+    prompt "$1" "`$ECHO $default`" answer
+    eval $2=\"$answer\"
+    write_str $2
+}
+
+mkversionh () {
+versionh=src/include/wlan/version.h 
+cp src/version.h.in $versionh
+
+DATE=`date`
+
+printf '#define WLAN_RELEASE\t"%d.%d.%d%s"\n' \
+        ${WLAN_VERSION} \
+        ${WLAN_PATCHLEVEL} \
+        ${WLAN_SUBLEVEL} \
+        ${WLAN_EXTRAVERSION} >> $versionh
+printf '#define WLAN_RELEASE_CODE 0x%02x%02x%02x\n' \
+        ${WLAN_VERSION} \
+        ${WLAN_PATCHLEVEL} \
+        ${WLAN_SUBLEVEL} >> $versionh
+echo   "#define WLAN_BUILD_DATE \"$DATE\" " >> $versionh
+
+printf '\n' >> $versionh
+printf '#endif\n' >> $versionh
+
+}
+
+#=======================================================================
+
+# If the src/include/wlan/version.h file needs a touchup, fix or create it
+if [ -r src/include/wlan/version.h ]; then
+	WLAN_RELEASE="${WLAN_VERSION}.${WLAN_PATCHLEVEL}.${WLAN_SUBLEVEL}${WLAN_EXTRAVERSION}"
+	OLD_RELEASE=`sed --quiet -e '/#define.*WLAN_RELEASE[^_].*\"\(.*\)\"/s//\1/p' < src/include/wlan/version.h`
+	if [ "${WLAN_RELEASE}" != "${OLD_RELEASE}" ]; then
+		# Overwrite the file
+		mkversionh
+	fi
+else
+	# File doesn't exist, create it
+	mkversionh
+fi
+
+$ECHO ""
+$ECHO "-------------- Linux WLAN Configuration Script -------------"
+$ECHO ""
+$ECHO "The default responses are correct for most users."
+$ECHO ""
+
+#=======================================================================
+# Should we build for PCMCIA Card Services?
+
+ask_bool "Build Prism2.x PCMCIA Card Services (_cs) driver?" PRISM2_PCMCIA
+
+#=======================================================================
+# Should we build for PLX9052 based PCI adapters?
+
+ask_bool "Build Prism2 PLX9052 based PCI (_plx) adapter driver?" PRISM2_PLX
+#=======================================================================
+# Should we build for Prism2 native PCI?
+
+ask_bool "Build Prism2.5 native PCI (_pci) driver?" PRISM2_PCI
+
+#=======================================================================
+# Should we build for Prism2.5 USB?
+
+ask_bool "Build Prism2.5 USB (_usb) driver?" PRISM2_USB
+
+$ECHO ""
+
+#=======================================================================
+# Collect the kernel source tree and test for sanity
+
+CUR_RELEASE=`uname -r`
+
+if [ "$LINUX_SRC" = "" ] ; then
+    LINUX_SRC=/lib/modules/$CUR_RELEASE/build
+fi
+
+ask_str "Linux source directory" LINUX_SRC
+
+if [ ! -f $LINUX_SRC/include/linux/version.h ] ; then
+	$ECHO "Linux source tree $LINUX_SRC is incomplete or missing!"
+	if [ -d $LINUX_SRC/include/linux ] ; then
+	$ECHO "    The kernel header files are present, but not " \
+		"the full source code."
+	fi
+	$ECHO "    See the HOWTO for a list of FTP sites for current" \
+	 "kernel sources."
+	fail
+fi
+
+KERNEL_SOURCE=$LINUX_SRC make -Cscripts 2>&1 > /dev/null
+. scripts/make.opts
+
+# What kernel are we compiling for?
+
+version () {
+	expr $1 \* 65536 + $2 \* 256 + $3
+}
+
+$ECHO ""
+
+SRC_RELEASE="$KERNEL_RELEASE"
+
+VERSION_CODE=`grep LINUX_VERSION_CODE $LINUX_SRC/include/linux/version.h | \
+    sed -e 's/[^0-9]//g'`
+
+$ECHO "The kernel source tree is version $SRC_RELEASE."
+if [ $VERSION_CODE -lt `version 2 4 0` ] ; then
+	$ECHO "This package requires at least a 2.4.x series kernel."
+	fail
+fi
+
+if [ $VERSION_CODE -gt `version 2 5 0` ] ; then
+        KERN_25=y
+        write_bool KERN_25
+fi
+if [ $VERSION_CODE -ge `version 2 6 5` ] ; then
+    KERN_2_6_5=y
+fi
+write_bool KERN_2_6_5
+if [ $VERSION_CODE -ge `version 2 6 17` ] ; then
+    KERN_2_6_17=y
+fi
+write_bool KERN_2_6_17
+
+if [ $VERSION_CODE -gt `version 2 6 26` ] ; then
+    $ECHO "******* WARNING WARNING WARNING *******"
+    $ECHO "Kernels newer than 2.6.26.x are not supported."
+    $ECHO "******* WARNING WARNING WARNING *******"
+fi
+
+if [ "$SRC_RELEASE" != "$CUR_RELEASE" ] ; then
+	$ECHO "WARNING: the current running kernel is actually version $CUR_RELEASE."
+fi
+
+if [ ! -f $LINUX_SRC/.config ] ; then
+    $ECHO "WARNING: .config not present in kernel source tree.  This will"
+    $ECHO "         screw up modversions detection and build optimizations."
+    $ECHO "         Is this a RedHat kernel? Workarounds enabled." 
+    if [ -f $LINUX_SRC/include/linux/modversions.h ] ; then
+	KERNEL_MODFLAGS="-DMODULE -DMODVERSIONS -include $LINUX_SRC/include/linux/modversions.h"
+    fi
+    $ECHO "         For an optimized build, copy over the relevent file from"
+    $ECHO "         $LINUX_SRC/configs/ to $LINUX_SRC/.config"
+fi
+
+# Check for consistent kernel build dates
+CUR_D=`uname -v | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'`
+CUR_D=`$ECHO $CUR_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'`
+$ECHO "The current kernel build date is $CUR_D."
+UTS_VERSION="unknown";
+if [ -f $LINUX_SRC/include/linux/compile.h ] ; then
+	UTS_VERSION=`grep UTS_VERSION $LINUX_SRC/include/linux/compile.h |
+	sed -e 's/.*"\(.*\)"/\1/'`
+	SRC_D=`$ECHO $UTS_VERSION | sed -e 's/^#[0-9]* //;s/SMP //;s/PREEMPT //;'`
+	SRC_D=`$ECHO $SRC_D | sed -e 's/\(:[0-9][0-9]\) .* \([12][90]\)/\1 \2/'`
+	if [ $SRC_RELEASE = $CUR_RELEASE -a "$SRC_D" != "$CUR_D" ] ; then
+	$ECHO "WARNING: the source tree has a build date of $SRC_D."
+	if [ `date -d "$SRC_D" +%s` -gt `date -d "$CUR_D" +%s` ] ; then
+		$ECHO "   Did you forget to install your new kernel?!?"
+	fi
+	fi
+fi
+$ECHO ""
+
+	# Test for netlink availability in the kernel
+	if grep -sq "#define.*CONFIG_NETLINK.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_NETLINK=y
+	else
+		CONFIG_NETLINK=n
+	fi
+	write_bool CONFIG_NETLINK
+
+
+	# Test for pf_packet availability in the kernel
+	if grep -sq "#define.*CONFIG_PACKET.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_PACKET=y
+	else
+		CONFIG_PACKET=n
+	fi
+	write_bool CONFIG_PACKET
+
+
+	# Test for pf_packet availability in the kernel
+	if grep -sq "#define.*CONFIG_HOTPLUG.*1" ${LINUX_SRC}/include/linux/autoconf.h; then
+		CONFIG_HOTPLUG=y
+	else
+		CONFIG_HOTPLUG=n
+	fi
+	write_bool CONFIG_HOTPLUG
+
+#=======================================================================
+# Alternate target install root dir - the value of this variable
+# will prefix other variables, such as modules and pcmcia directories
+ask_str "Alternate target install root directory on host" TARGET_ROOT_ON_HOST
+
+if [ $PRISM2_PCMCIA = "y" ] ; then
+	# PCMCIA script dir
+	ask_str "PCMCIA script directory" PCMCIA_DIR
+	TARGET_PCMCIA_DIR=$TARGET_ROOT_ON_HOST$PCMCIA_DIR
+	write_str TARGET_PCMCIA_DIR
+fi
+
+MODDIR=/lib/modules/$SRC_RELEASE
+ask_str "  Module install directory" MODDIR
+TARGET_MODDIR=$TARGET_ROOT_ON_HOST$MODDIR/linux-wlan-ng
+write_str TARGET_MODDIR
+$ECHO ""
+
+
+# Just write some out (we're not prompting right now)
+write_str INST_EXEDIR
+TARGET_INST_EXEDIR=$TARGET_ROOT_ON_HOST$INST_EXEDIR
+write_str TARGET_INST_EXEDIR
+
+#=======================================================================
+
+# How should the startup scripts be configured?
+
+SYSV_INIT=n
+if [ "$PREFIX" = "" ] ; then
+	if [ -d /etc/rc.d/init.d -o -d /etc/init.d -o -d /sbin/init.d ] ; then
+	$ECHO "It looks like you have a System V init file setup."
+	SYSV_INIT=y
+	if [ -d /etc/rc.d/init.d ] ; then
+		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG
+		$ECHO "RC_DIR=/etc/rc.d" >> $CONFIG_MK
+	elif [ -d /sbin/init.d ] ; then
+		$ECHO "RC_DIR=/sbin" >> $CONFIG
+		$ECHO "RC_DIR=/sbin" >> $CONFIG_MK
+	else
+		$ECHO "RC_DIR=/etc" >> $CONFIG
+		$ECHO "RC_DIR=/etc" >> $CONFIG_MK
+	fi
+	else
+	$ECHO "It looks like you have a BSD-ish init file setup."
+	if ! grep rc.wlan /etc/rc.d/rc.S >/dev/null ; then
+		$ECHO "    You'll need to edit /etc/rc.d/rc.S to invoke" \
+		 "/etc/rc.d/rc.wlan (for ISA/PCMCIA cards)"
+		$ECHO "    so that wlan cards will be started at boot time."
+	fi
+	SYSV_INIT=n
+	fi
+	write_bool SYSV_INIT
+else
+	ask_bool "System V init script layout" SYSV_INIT
+	if [ "$SYSV_INIT" = "y" ] ; then
+	ask_str "Top-level directory for RC scripts" RC_DIR
+	fi
+fi
+
+if [ ! -x $TARGET_ROOT_ON_HOST/sbin/depmod ] ; then INSTALL_DEPMOD=n ; fi
+write_bool INSTALL_DEPMOD
+
+$ECHO ""
+
+#=======================================================================
+# Make sure our target architecture is correct
+
+$ECHO ""
+
+ask_str "Prefix for build host compiler? (rarely needed)" HOST_COMPILE
+dump_str "HOST_CFLAGS=$HOST_CFLAGS"
+
+$ECHO ""
+
+dump_str 'HOST_AS=$(HOST_COMPILE)as'
+dump_str 'HOST_LD=$(HOST_COMPILE)ld'
+dump_str 'HOST_CC=$(HOST_COMPILE)gcc'
+dump_str 'HOST_CPP=$(HOST_CC) -E'
+dump_str 'HOST_AR=$(HOST_COMPILE)ar'
+dump_str 'HOST_NM=$(HOST_COMPILE)nm'
+dump_str 'HOST_STRIP=$(HOST_COMPILE)strip'
+dump_str 'HOST_OBJCOPY=$(HOST_COMPILE)objcopy'
+dump_str 'HOST_OBJDUMP=$(HOST_COMPILE)objdump'
+dump_str 'HOST_RANLIB=$(HOST_COMPILE)ranlib'
+dump_str 'HOST_MAKE=make'
+
+CROSS_COMPILE_ENABLED=y
+if [ "_$CROSS_COMPILE" = "_" ] ; then
+CROSS_COMPILE_ENABLED=n
+fi
+
+write_str CROSS_COMPILE
+write_bool CROSS_COMPILE_ENABLED
+#dump_str 'CFLAGS=-O2 -Wall -Wstrict-prototypes -pipe'
+
+if [ "_$CROSS_COMPILE" = "_" ] ; then
+dump_str 'AS=$(HOST_COMPILE)as'
+dump_str 'LD=$(HOST_COMPILE)ld'
+dump_str 'CC=$(HOST_COMPILE)gcc'
+dump_str 'CPP=$(HOST_CC) -E'
+dump_str 'AR=$(HOST_COMPILE)ar'
+dump_str 'NM=$(HOST_COMPILE)nm'
+dump_str 'STRIP=$(HOST_COMPILE)strip'
+dump_str 'OBJCOPY=$(HOST_COMPILE)objcopy'
+dump_str 'OBJDUMP=$(HOST_COMPILE)objdump'
+dump_str 'RANLIB=$(HOST_COMPILE)ranlib'
+dump_str 'MAKE=make'
+else
+dump_str "AS=$CROSS_COMPILE"as
+dump_str "LD=$CROSS_COMPILE"ld
+dump_str "CC=$CROSS_COMPILE"gcc
+CC="$CROSS_COMPILE"gcc
+dump_str "CPP=$CC -E"
+dump_str "AR=$CROSS_COMPILE"ar
+dump_str "NM=$CROSS_COMPILE"nm
+dump_str "STRIP=$CROSS_COMPILE"strip
+dump_str "OBJCOPY=$CROSS_COMPILE"objcopy
+dump_str "OBJDUMP=$CROSS_COMPILE"objdump
+dump_str "RANLIB=$CROSS_COMPILE"ranlib
+dump_str "MAKE=make"
+fi
+
+#=======================================================================
+# Should we build for debugging?
+
+ask_bool "Build for debugging (see doc/config.debug)" WLAN_DEBUG
+
+$ECHO ""
+
+FIRMWARE_DIR="/etc/wlan/"
+write_str FIRMWARE_DIR
+
+WLAN_SRC=`pwd`/src/
+write_str WLAN_SRC
+
+mv $CONFIG config.out
+
+$ECHO ""
+$ECHO "Configuration successful.  Now type 'make' and pray."
+$ECHO ""
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ
new file mode 100644
index 0000000..83358fd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/FAQ
@@ -0,0 +1,468 @@
+********************** Linux-wlan-ng FAQ **************************
+For additions, corrections, and clarifications, send mail to
+solomon@linux-wlan.com with FAQ in the subject.
+*******************************************************************
+
+Q: When will linux-wlan-ng be merged into the mainline kernel?
+
+	Short answer:  Never.
+
+	First, the linux-netdev people will soundly reject this driver.  
+	I don't begrudge them for this; indeed in their position I'd do 
+	exactly the same.  It's a sound engineering decision.
+
+	linux-wlan-ng is obselete, and effort spent fixing it is better 
+	spent elsewhere.  You can't even buy the hardware any longer.
+
+	The original design for linux-wlan-ng was to separate the 802.11 
+	stack from the actual hardware driver.  This added a lot of 
+	complexity, but would greatly ease the pain of supporitng 
+	multiple hardware types.  Unfortunately, the implementation was 
+	turned out to be somewhat flawed, and hardware manufaturers went 
+	away from the thick-mac model, leaving linux-wlan-ng overly 
+	complex for what it did.  
+
+	(Ironically, the linux kernel is adopting a similar 
+	 separation model, but it is a long way off from being ready)
+
+	So why not rewrite linux-wlan-ng to be more suitable, the 
+	enterprising reader may ask?
+
+	The kernel already has two drivers for prism2 (cs/pci/plx) 
+	hardware -- hostap and orinoco. linux-wlan-ng basically 
+	has three features not present in kernel drivers:
+	
+		1) USB support
+		2) nearly complete implemettion of the 802.11 MIB/MLME
+		3) Firmware-based AP support
+	
+	(3) requires an expensive license that isn't even available any 
+	longer, as the hostap mode works far better -- and is already 
+	supported by in-kernel drivers.
+
+	(2) would need to be removed or completely rewritten in order to 
+	be merged, as it does not fit within existing kernel APIs, and 
+	it would be effectively merging new kernel APIs.
+
+	(1) Is the only truly unique thing that linux-wlan-ng does that 
+	is generally needed any more.
+
+	To merge it into the kernel, we'd need to strip out (2), which 
+	would necessitate a complete rewrite -- to the point where 
+	writing a new driver from scratch is easier.  
+
+	Basically, it would take far less effort to add USB 
+	support to the in-kernel drivers than it would to make 
+	linux-wlan-ng acceptable to be merged. 
+
+	In other words, the short answer is:  Never.
+
+Q: It doesn't work/compile/sing/dance!
+
+	First, make sure you're using the latest linux-wlan-ng release
+	from http://www.linux-wlan-ng.org.  New releases are infrequent,
+	but tthey happen for a reason.
+
+	If you are using the latest release, you may want to obtain the 
+	latest development sources via subversion:
+
+		svn co svn://svn.shaftnet.org/linux-wlan-ng/trunk
+
+	Questions and problems with the developement code should be sent 
+	to the development mailing list, at:
+
+		linux-wlan-devel@lists.linux-wlan.com
+
+Q: What devices does the linux-wlan-ng driver support?
+
+	Currently, the linux-wlan-ng driver supports the Intersil
+	Prism2/2.5/3 chipsets.  These chipsets are used in a wide
+	variety of PCMCIA, PCI, and USB products.  If it has a Prism
+	chip in it, linux-wlan-ng should support it.
+
+Q: Will linux-wlan-ng support some feature or funkiness in
+   the <pick one> Linux distribution?
+ 
+	Our development target always consists of stock kernels from
+	kernel.org and stock pcmcia_cs.  If a given distribution
+	chooses to do something funky, we rely on users of that
+	distribution to contribute patches to deal with their
+	funkiness.
+
+	The quickest way to get some action on this kind of item is to
+	communicate with any users of the same distribution that you
+	can find on the linux-wlan-[devel|user] lists about working up
+	a patch.  If it's reasonably sane and doesn't break things for
+	our development environment or for other distributions, we'll
+	be more than happy to roll that patch into the next release.  
+
+Q: What does "resultcode=implementation_failure" mean?
+
+	Complicated Answer: 
+	Each command that can be issued with wlanctl-ng returns a status
+	called "resultcode".  Resultcode is something that we picked up
+	from the 802.11 MLME definition.  In the standard, resultcode
+	is an enumeration with a fixed set of values.  To be able to
+	report failures that a driver detects that are outside the
+	context of the 802.11 standard set of resultcode values, we 
+	invented the "implementation_failure" value.
+
+	Simple Answer:
+	Go look in your kernel log for more detailed error information.
+
+Q: I'm trying to use the HostAP/orinoco/aironet/wvlan driver and it
+   won't work!
+
+	That has nothing to do with the linux-wlan-ng driver.  Go ask
+	those responsible for those drivers.
+
+Q: Can I get Debian packages of linux-wlan-ng?
+ 
+A: Packages of linux-wlan-ng are now available in the Debian stable
+   tree.
+
+Q: Where do I find some RPMS for linux-wlan-ng? The ones on
+    the ftp are dreadfully out of date!
+
+	http://prism2.unixguru.raleigh.nc.us/
+
+	(Maintained by Tim Miller)
+
+Q: I installed the RPMs/compiled the driver and installed it and it
+   won't work when I try to run 'ifup wlan0' or whatnot.
+
+	First, ensure you're running the most up-to-date version of
+	the driver.  Many problems have been fixed in newer releases.
+
+	802.11 wireless networks are much more complex than wired
+	ethernet networks.  They require much more configuration than
+        an ip address.   If you are using pcmcia, edit the file 
+        /etc/pcmcia/wlan-ng.opts to set the network parameters.  For
+        PCI, PLX, or USB adapters, you need to edit /etc/wlan.conf.
+	
+	You also need to make sure you have the correct settings in
+	/etc/modules.conf (alias wlan0 prism2_usb). 
+
+	Might we suggest you read the README file?
+
+Q: When I try to load the driver, I get a whole bunch of errors about
+   unresolved symbols.
+
+	The running kernel does not match the kernel the driver was
+	compiled for.  If you downloaded a RPM, make sure you
+        downloaded the correct version for your kernel.  This should not
+        happen if you compiled the driver from source -- if it does, the
+        kernel configuration you compiled against does not match the
+        running kernel.  Probably a screwed-up distro kernel.
+
+Q: I have a DWL-520 and it won't work!
+
+	The DWL-520 claims to require a PCI 2.2 compliant motherboard.
+        Only fairly new machines support this.  Yes, the box lies.  :)
+        Check the documentation for your system and/or motherboard to see if 
+	it is PCI 2.2 compliant.  
+
+	NOTE:  We have some reports of the DWL-520 working on PCI 2.1
+	motherboards; your mileage may vary.  See the following URL:
+
+		http://www.personaltelco.net/index.cgi/DlinkDwl520
+
+        NOTE:  The Linksys WMP11 v2.7 is NOT prism-based, and
+	thus not supported by this driver.  The Actiontec PCI board is
+	still known to be prism based; you may want to try that instead.
+
+Q: All I see is "Tx attempt prior to association, frame dropped"
+
+	You are not associated with an access point.  Double-check the
+        settings in /etc/wlan.conf (USB, PCI, PLX) or /etc/pcmcia/wlan-ng.opts
+        (for PCMCIA users).    If all of these settings are correct (you
+        did check with your admin, right?) make sure the access point
+        doesn't have a MAC filter installed or has different WEP settings.
+
+	If all of this is verified correct, and are using a PCMCIA
+	card, try setting the "irq_mode=0" option.  See the
+	documentaiton in the pcmcia-cs sources.
+
+Q: I installed the modules, performed a 'wlanctl-ng wlan0 lnxreq_autojoin'
+   command, and it still won't work!
+
+	You did read the README, didn't you?  You need to perform a 
+	"wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable" in order to
+        torn on the radio.  The pcmcia scripts and the /etc/init.d/wlan
+        script do this for you.
+
+Q: I have a XXX USB 802.11b device, will it work with this driver?
+
+	Most 802.11b USB devices use the ATMEL AT76C503A chipset, which
+        is not supported by the linux-wlan-ng project.  However, there
+	are some prism2.5-based USB adapters, most notably the Linksys
+	WUSB v2.5.  The other versions (1.0, 2.6, 3.0) are based on
+        ATMEL chipsets.  Another supported USB device is the Actiontec
+	802UI3.
+
+Q: My prism2.5-based USB adapter won't work!
+
+	An excellent guide can be found at:
+
+	http://www.fuw.edu.pl/~pliszka/hints/prism2.html
+	
+Q: My prism2.5-based USB adapter won't come up if it's plugged in at boot! 
+
+	Thanks to buggy firmware, it is often necessary to perform a
+        device reset on initialization.  You can perform this by adding
+        "options prism2_usb prism2_doreset=1" in your /etc/modules.conf
+
+	Intersil has released Primary firmware 1.1.2, which seems to
+	have resolved this problem, at least on our test machines.
+
+Q: My PC crashes when the USB device is plugged in!
+
+	This is a result of the port reset necessitated by buggy firmware.
+
+	You are probably using the 'usb-uhci' driver with an intel
+        chipset.  Unfortunately, the crashes happen deep within the USB
+        core, so there's nothing the linux-wlan-ng driver can do.
+
+	In the mean time, try using the 'uhci' host controller driver
+        instead ("alias usb-controller uhci" in /etc/modules.conf), or
+        plug the USB device into a hub.
+
+	Linux kernel 2.4.19 is known to improve the situation somewhat,
+	but the right way to fix it is to turn off the port reset
+	(options prism2_usb prism2_doreset=0).  The current firmware
+	from Intersil alleviates the need to perform the reset.
+
+	UPDATE:  if you're using linux-wlan-ng 0.2.1-pre6 or newer and 
+        kernel < 2.4.22-pre, the 'uhci' driver will NOT work without a 
+        kernel patch! See:
+
+	http://lists.linux-wlan.com/pipermail/linux-wlan-devel/2003-May/002369.html
+
+Q: How come I can't transmit when in monitor mode?
+
+	You can't.  It's a fundamental "feature" of the hardware.
+
+Q: How come the /proc/net/wireless info isn't updated when in monitor mode?
+
+	The definition of "signal quality" refers to the quality of the
+	link to the associated access point.  When you're in monitor
+	mode, you're not associated, so this information is by defintion 
+	irrelevant.
+
+	And regardless, the hardware doesn't update the registers we poll to
+	obtain this information while in monitor mode.
+
+Q: What do the various monitor mode options do?
+
+	enable=[true/false]           Turn it on and off.  required.
+	channel=[1-14]                Sniff channel.  required.
+	prismheader=[true/false]      Optionally preppend a special
+                                      radio header on the packet.
+				      Defaults to off.
+	keepwepflags=[true/false]     If you had WEP configured correctly
+				      the card will perform WEP decoding.
+				      Defaults to off.
+	stripfcs=[true/false]         When true, the 802.11 FCS is not
+				      stripped from incoming packets.
+				      Defaults off.
+	truncate=[number]             Truncates the captured frame.  
+
+Q: How come iwconfig/iwspy/[random other wireless tool] doesn't work?
+	
+	linux-wlan-ng only supports a subset of the wireless
+	extensions; generally read-only things.  However, you won't
+	need any of those tools as wlan-ng comes with its own set of
+	tools that closely mirror the 802.11 spec.  Have a look
+	through the documentation and supplied scripts.
+
+	That said, if more complete (ie read/write) wireless extension
+	support is really important to you, you're more than welcome to
+	implement it and submit a patch.  
+
+	As of 0.1.16-pre1, the wireless extension plumbing has been
+	re-written, and further support is much easier now.  And many
+	more bits are hooked up now than before.
+
+Q: How do I know exactly what prism variant is on my card?
+
+	When you load the driver, you see a line which reads like:
+
+		ident: nic h/w id=0x8008 1.0.0
+                                         
+	1.0.0 is the hardware revision.  Below is a (partial) list of IDs.
+
+		0x8003, 0x8008 :  Prism2 PCMCIA
+
+		0x800b, 0x800c :  Prism2.5 PCMCIA
+		0x8012, 0x8013 :  Prism2.5 PCI
+		0x801a, 0x801b :  Prism3 PCMCIA
+		0x8021, 0x8022 :  Prism3 PCI
+		
+		0x800f, 0x8010 :  Prism2.5 USB  (3863)
+		0x801e, 0x801f :  Prism2.5 USB  (3861B)
+		0x8025, 0x8026 :  Prism3 USB
+
+Q: How do I know what firmware my card has?
+
+	After the driver is loaded and brought into ifstate=enable, you
+	will see the following lines in the kernel log: (eg dmesg |grep ident)
+
+	ident: pri f/w: id=0x15 0.3.0
+	ident: sta f/w: id=0x1f 1.7.1
+
+	In this case, the card has primary firmware 0.3.0 and secondary
+	firmware 1.7.1.  
+	
+	Or, if you are using 0.2.1-pre17 or newer:
+	'cat /proc/net/p80211/wlan0/nsd' with the card running.
+
+Q: How can I update my firmware under Linux?
+
+	Use the 'prism2dl' utility.  While it does its utmost to ensure 
+	you don't fry your card, use it at your own risk.  Even the 
+	Intersil-supplied tools fail occasionally.
+
+Q: Where can I download updated firmware for my Prism2/2.5/3-based card?
+
+	As of linux-wlan-ng 0.2.1-pre21, the ram download firmware for 
+	all supported card types is bundled with the driver.  These 
+	images cannot be flashed.
+
+	A general FAQ on firmware updating is here:
+		http://linux.junsun.net/intersil-prism
+
+	It includes links to some sites with firmware images.
+
+	We strongly recommend against flashing a new image, instead one 
+	should use the ram-download images that are loaded when the
+	driver starts, much like the Windows drivers do.
+
+	See the instructions below for getting this to work.
+
+Q: What's this about "ram downloading"?
+
+	This means the driver loads up a firmware images directly into
+	card RAM, instead of using the firmware stored in the card's 
+	flash ROM.  This lets us ensure we are using the lastest available
+	code without risking ruining the hardware due to a bad flashing.
+
+	linux-wlan-ng will automatically perform a RAM download if you have
+	the necessary firmware images.
+
+Q: Okay, I have new ram download firmware images, where do I put them?
+
+	copy the *hex files into linux-wlan-ng-XXXX/src/prism2/
+	then build and install the driver per usual.
+
+Q: Can I use my 802.11b card as an AP under Linux?
+
+	Yes, and in the true free software fashion, there are several
+	ways:
+
+	a) linux-wlan-ng supports AP operation by using special tertiary
+	   firmware on prism devices.  This firmware is not generally
+	   available, however.   Contact Intersil for licensing terms.
+
+	b) The Prism2 HostAP driver uses the special HostAP mode of the
+           prism chipsets.            http://people.ssh.com/jkm/Prism2/
+
+Q: I have a PCI adapter, and upon resuming from a suspend, the device is not
+   responsive.  
+
+	Much like you need to run some commands to bring the card to life 
+	when the PC is first booted, you also need to perform similar 
+	steps when the card comes out of suspend.   Run '/etc/init.d/wlan start'
+	and all should be well.
+
+	You'll need to be running 0.1.15-pre3 or newer for this to work
+        properly.
+
+	The prism2.5/3 chipsets do not support PCI power management, so
+	this is the best we can realistically do.
+
+Q: I have a Linksys WMP11, and under moderate to heavy traffic, I get
+   errors like "unknown port number" and "invalid frame type"
+
+	Make sure you're using the latest firmware avaliable from
+	Linksys's web site.  According to the firmware release notes:
+	
+	 "Changes were made to prevent erroneous data from being 
+          transferred over the PCI bus"
+
+	Note that this problem has also beeen confirmed on the D-Link
+	DWL-520.  You will need firmware 1.3.5 or newer to resolve this.
+
+Q:  I have a D-Link DWL-650/650+/520+ card, why doesn't it work with
+    this driver?
+
+	The DWL-650 comes in at least three flavors; older ones have grey
+	antennae, with no revision number on the back.  
+	Second-generation  has a black antenna and the back reads 
+	"H/W J3 F/W 1.x.x". Both of these will work.  The third-
+	generation, with a grey antenna, has "H/W A1, F/W x.x", and
+	will NOT work;  It has the same hardware as the "plus" series
+	of cards.
+
+	The "plus" series of cards from D-Link use the Texas Instruments 
+	ACX100/TNETW1100 chipset.  TI has not been forthcoming with 
+	programming information.  Politely ask TI and D-Link for Linux
+	drivers and/or docs.
+
+	We've been told that TI will be releasing binary-only Linux
+	drivers sometime in December.  In the mean time, return the
+	card and buy one that works with Linux.
+	
+Q: I have a Linksys WMP11 v2.7 card; why doesn't it work with this driver?
+
+	Linksys, in their grand tradition, likes to introduce completely
+	new cards but re-use the model number.  The WMP11 v2.7 utilizes the
+	Broadcomm chipset, and is not supported by linux-wlan-ng.  Politely
+	ask Linksys and/or Broadcomm for Linux drivers and/or docs.
+
+Q: What other resources are there for Wireless LANs under Linux?
+
+	http://www.fuw.edu.pl/~pliszka/hints/wireless.html
+
+	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html
+
+Q: I'm using RedHat 8.x+ (or Fedora Core), and I get this error when 
+   trying to ifup wlan0:
+
+	Error for wireless request "Set Encode" (8B2A) :
+	    SET failed on device wlan0 ; Function not implemented.
+	Error for wireless request "Set ESSID" (8B1A) :
+	    SET failed on device wlan0 ; Function not implemented.
+
+	
+	You can safely ignore this; it is there because linux-wlan-ng
+	does not currently use the wireless extension commands for
+	configuration.
+
+Q: When the prism2_cs module loads, I see the message "RequestIRQ:
+   Resource in use" and the load fails! What's going on?
+
+   Is your card a 16-bit PCMCIA card? If it is, you may need to
+   recompile your kernel with ISA bus support enabled (CONFIG_ISA=y).
+   The PCMCIA core uses ISA bus support to help determine what IRQs
+   are available for the card. Without it, the PCMCIA core may not be
+   able to select an IRQ.
+
+Q: After installing linux-wlan-ng on my RedHat 9 system, pcmcia no 
+   longer works!
+
+	This is due to a bug in the RedHat 9 pcmcia startup scripts.
+	On or about line 105 in /etc/init.d/pcmcia, remove all of the
+	'.o' suffixes on the modprobe command lines.  It should read 
+	something like this:
+
+            if [ -d $PC ] ; then
+                echo -n " modules"
+                /sbin/modprobe pcmcia_core $CORE_OPTS
+                /sbin/modprobe $PCIC $PCIC_OPTS
+                /sbin/modprobe ds
+            elif [ -d $KD ] ; then
+                /sbin/modprobe pcmcia_core
+                /sbin/modprobe $PCIC
+                /sbin/modprobe ds
+            else
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE b/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE
new file mode 100644
index 0000000..8d23a4c
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/LICENSE
@@ -0,0 +1,563 @@
+                           MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ----------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. ''Contributor'' means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. ''Contributor Version'' means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. ''Covered Code'' means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. ''Electronic Distribution Mechanism'' means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. ''Executable'' means Covered Code in any form other than Source
+     Code.
+
+     1.6. ''Initial Developer'' means the individual or entity identified as
+     the Initial Developer in the Source Code notice required by Exhibit A.
+
+     1.7. ''Larger Work'' means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. ''License'' means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. ''Modifications'' means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+     
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. ''Original Code'' means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this License
+     is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process, and
+     apparatus claims, in any patent Licensable by grantor.
+
+     1.11. ''Source Code'' means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus any
+     associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You'' (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You'' includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control'' means (a) the power, direct or indirect, to
+     cause the direction or management of such entity, whether by contract
+     or otherwise, or (b) ownership of more than fifty percent (50%) of the
+     outstanding shares or beneficial ownership of such entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+     
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or selling
+          of Original Code, to make, have made, use, practice, sell, and
+          offer for sale, and/or otherwise dispose of the Original Code (or
+          portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes Original
+          Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code and/or
+          as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or selling
+          of  Modifications made by that Contributor either alone and/or in
+          combination with its Contributor Version (or portions of such
+          combination), to make, use, sell, offer for sale, have made,
+          and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be distributed
+     only under the terms of this License or a future version of this
+     License released under Section 6.1, and You must include a copy of this
+     License with every copy of the Source Code You distribute. You may not
+     offer or impose any terms on any Source Code version that alters or
+     restricts the applicable version of this License or the recipients'
+     rights hereunder. However, You may include an additional document
+     offering the additional rights described in Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that the
+     Modification is derived, directly or indirectly, from Original Code
+     provided by the Initial Developer and including the name of the Initial
+     Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+     
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2, Contributor
+          must include a text file with the Source Code distribution titled
+          "LEGAL'' which describes the claim and the party making the claim
+          in sufficient detail that a recipient will know whom to contact.
+          If Contributor obtains such knowledge after the Modification is
+          made available as described in Section 3.2, Contributor shall
+          promptly modify the LEGAL file in all copies Contributor makes
+          available thereafter and shall take other steps (such as notifying
+          appropriate mailing lists or newsgroups) reasonably calculated to
+          inform those who received the Covered Code that new knowledge has
+          been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+          (c) Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely to
+     look for such a notice.  If You created one or more Modification(s) You
+     may add your name as a Contributor to the notice described in Exhibit
+     A.  You must also duplicate this License in any documentation for the
+     Source Code where You describe recipients' rights or ownership rights
+     relating to Covered Code.  You may choose to offer, and to charge a fee
+     for, warranty, support, indemnity or liability obligations to one or
+     more recipients of Covered Code. However, You may do so only on Your
+     own behalf, and not on behalf of the Initial Developer or any
+     Contributor. You must make it absolutely clear than any such warranty,
+     support, indemnity or liability obligation is offered by You alone, and
+     You hereby agree to indemnify the Initial Developer and every
+     Contributor for any liability incurred by the Initial Developer or such
+     Contributor as a result of warranty, support, indemnity or liability
+     terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of the
+     Covered Code is available under the terms of this License, including a
+     description of how and where You have fulfilled the obligations of
+     Section 3.2. The notice must be conspicuously included in any notice in
+     an Executable version, related documentation or collateral in which You
+     describe recipients' rights relating to the Covered Code. You may
+     distribute the Executable version of Covered Code or ownership rights
+     under a license of Your choice, which may contain terms different from
+     this License, provided that You are in compliance with the terms of
+     this License and that the license for the Executable version does not
+     attempt to limit or alter the recipient's rights in the Source Code
+     version from the rights set forth in this License. If You distribute
+     the Executable version under a different license You must make it
+     absolutely clear that any terms which differ from this License are
+     offered by You alone, not by the Initial Developer or any Contributor.
+     You hereby agree to indemnify the Initial Developer and every
+     Contributor for any liability incurred by the Initial Developer or such
+     Contributor as a result of any such terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to statute,
+     judicial order, or regulation then You must: (a) comply with the terms
+     of this License to the maximum extent possible; and (b) describe the
+     limitations and the code they affect. Such description must be included
+     in the LEGAL file described in Section 3.4 and must be included with
+     all distributions of the Source Code. Except to the extent prohibited
+     by statute or regulation, such description must be sufficiently
+     detailed for a recipient of ordinary skill to be able to understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation (''Netscape'') may publish revised
+     and/or new versions of the License from time to time. Each version will
+     be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that the
+     phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', ''Netscape'', "MPL",
+     ''NPL'' or any confusingly similar phrase do not appear in your license
+     (except to note that your license differs from this License) and (b)
+     otherwise make it clear that Your version of the license contains terms
+     which differ from the Mozilla Public License and Netscape Public
+     License. (Filling in the name of the Initial Developer, Original Code
+     or Contributor in the notice described in Exhibit A shall not of
+     themselves be deemed to be modifications of this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom You
+     file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License shall,
+     upon 60 days notice from Participant terminate prospectively, unless if
+     within 60 days after receipt of notice You either: (i)  agree in
+     writing to pay Participant a mutually agreeable reasonable royalty for
+     Your past and future use of Modifications made by such Participant, or
+     (ii) withdraw Your litigation claim with respect to the Contributor
+     Version against such Participant.  If within 60 days of notice, a
+     reasonable royalty and payment arrangement are not mutually agreed upon
+     in writing by the parties or the litigation claim is not withdrawn, the
+     rights granted by Participant to You under Sections 2.1 and/or 2.2
+     automatically terminate at the expiration of the 60 day notice period
+     specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b) and
+     2.2(b) are revoked effective as of the date You first made, used, sold,
+     distributed, or had made, Modifications made by that Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,  all
+     end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
+     INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+     EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a ''commercial item,'' as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer
+     software'' and ''commercial computer software documentation,'' as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if any,
+     provides otherwise), excluding its conflict-of-law provisions. With
+     respect to disputes in which at least one party is a citizen of, or an
+     entity chartered or registered to do business in the United States of
+     America, any litigation relating to this License shall be subject to
+     the jurisdiction of the Federal Courts of the Northern District of
+     California, with venue lying in Santa Clara County, California, with
+     the losing party responsible for costs, including without limitation,
+     court costs and reasonable attorneys' fees and expenses. The
+     application of the United Nations Convention on Contracts for the
+     International Sale of Goods is expressly excluded. Any law or
+     regulation which provides that the language of a contract shall be
+     construed against the drafter shall not apply to this License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly, out
+     of its utilization of rights under this License and You agree to work
+     with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF
+     ANY KIND, either express or implied. See the License for the specific
+     language governing rights and
+     limitations under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms of
+     the _____ license (the "[___] License"), in which case the provisions
+     of [______] License are applicable  instead of those above.  If you
+     wish to allow use of your version of this file only under the terms of
+     the [____] License and not to allow others to use your version of this
+     file under the MPL, indicate your decision by deleting  the provisions
+     above and replace  them with the notice and other provisions required
+     by the [___] License.  If you do not delete the provisions above, a
+     recipient may use your version of this file under either the MPL or the
+     [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+
+     -----------------------------------------------------------------------
+
+     AMENDMENTS
+
+     The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla
+     Public License Version 1.1 with the following Amendments, including
+     Exhibit A-Netscape Public License.  Files identified with "Exhibit
+     A-Netscape Public License" are governed by the Netscape Public License
+     Version 1.1.
+
+     Additional Terms applicable to the Netscape Public License.
+          I. Effect.
+          These additional terms described in this Netscape Public
+          License -- Amendments shall apply to the Mozilla Communicator
+          client code and to all Covered Code under this License.
+
+          II. ''Netscape's Branded Code'' means Covered Code that Netscape
+          distributes and/or permits others to distribute under one or more
+          trademark(s) which are controlled by Netscape but which are not
+          licensed for use under this License.
+
+          III. Netscape and logo.
+          This License does not grant any rights to use the trademarks
+          "Netscape'', the "Netscape N and horizon'' logo or the "Netscape
+          lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
+          "Smart Browsing" even if such marks are included in the Original
+          Code or Modifications.
+
+          IV. Inability to Comply Due to Contractual Obligation.
+          Prior to licensing the Original Code under this License, Netscape
+          has licensed third party code for use in Netscape's Branded Code.
+          To the extent that Netscape is limited contractually from making
+          such third party code available under this License, Netscape may
+          choose to reintegrate such code into Covered Code without being
+          required to distribute such code in Source Code form, even if such
+          code would otherwise be considered ''Modifications'' under this
+          License.
+
+          V. Use of Modifications and Covered Code by Initial Developer.
+               V.1. In General.
+               The obligations of Section 3 apply to Netscape, except to the
+               extent specified in this Amendment, Section V.2 and V.3.
+
+               V.2. Other Products.
+               Netscape may include Covered Code in products other than the
+               Netscape's Branded Code which are released by Netscape during
+               the two (2) years following the release date of the Original
+               Code, without such additional products becoming subject to
+               the terms of this License, and may license such additional
+               products on different terms from those contained in this
+               License.
+
+               V.3. Alternative Licensing.
+               Netscape may license the Source Code of Netscape's Branded
+               Code, including Modifications incorporated therein, without
+               such Netscape Branded Code becoming subject to the terms of
+               this License, and may license such Netscape Branded Code on
+               different terms from those contained in this License.
+
+          VI. Litigation.
+          Notwithstanding the limitations of Section 11 above, the
+          provisions regarding litigation in Section 11(a), (b) and (c) of
+          the License shall apply to all disputes relating to this License.
+
+     EXHIBIT A-Netscape Public License.
+
+          ''The contents of this file are subject to the Netscape Public
+          License Version 1.1 (the "License"); you may not use this file
+          except in compliance with the License. You may obtain a copy of
+          the License at http://www.mozilla.org/NPL/
+
+          Software distributed under the License is distributed on an "AS
+          IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+          implied. See the License for the specific language governing
+          rights and limitations under the License.
+
+          The Original Code is Mozilla Communicator client code, released
+          March 31, 1998.
+
+          The Initial Developer of the Original Code is Netscape
+          Communications Corporation. Portions created by Netscape are
+          Copyright (C) 1998-1999 Netscape Communications Corporation. All
+          Rights Reserved.
+
+          Contributor(s): ______________________________________.
+
+          Alternatively, the contents of this file may be used under the
+          terms of the _____ license (the "[___] License"), in which case
+          the provisions of [______] License are applicable  instead of
+          those above.  If you wish to allow use of your version of this
+          file only under the terms of the [____] License and not to allow
+          others to use your version of this file under the NPL, indicate
+          your decision by deleting  the provisions above and replace  them
+          with the notice and other provisions required by the [___]
+          License.  If you do not delete the provisions above, a recipient
+          may use your version of this file under either the NPL or the
+          [___] License."
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile
new file mode 100644
index 0000000..1364886
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/Makefile
@@ -0,0 +1,148 @@
+# Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+DIRS = src doc man etc
+
+CTAGOPTS = --totals -I '__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS'
+ETAGS=etags
+ETAGSOPTS=-a
+
+
+default: all
+
+help:
+	@echo "Pick one of the following targets:"
+	@echo -e "\tmake config\t\t- interactive configure"
+	@echo -e "\tmake auto_config\t- automated configure"
+	@echo -e "\tmake default_config\t- automated configure using default config file"
+	@echo -e "\tmake all\t\t- build modules and programs"
+	@echo -e "\tmake install\t\t- install modules and programs"
+	@echo -e "\tmake clean\t\t- remove old binaries and dependency files"
+	@echo -e "\tmake mrproper\t\t- 'make clean' + remove config file"
+	@echo -e "\tmake tags\t\t- generate ctag files for source code"
+	@echo -e "\tmake TAGS\t\t- generate etag files for source code"
+	@echo " "
+
+help_noconfig:
+	@echo "You need to configure the source first"
+	@echo "Pick one of the following targets:"
+	@echo -e "\tmake config\t\t- interactive configure"
+	@echo -e "\tmake auto_config\t- automated configure"
+	@echo -e "\tmake default_config\t- automated configure using default config file"
+	@echo -e "\tmake help\t\t- show information about other targets"
+
+all:    config.mk
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d ; done
+
+distclean: mrproper
+
+mrproper: clean
+	rm -f config.out
+	rm -f tags.linux tags TAGS
+
+clean:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean ; done
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags 
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	rm -f config.mk config.new
+	rm -f src/include/wlan/version.h
+
+install:
+	find . -name .depend -exec rm {} \;
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d install ; done
+
+auto_config:
+	@touch config.mk config.new
+	@rm -f config.mk config.new
+	@./Configure -d
+
+default_config:
+	@touch config.mk config.new
+	@rm -f config.mk config.new
+	@./Configure -d ./default.config
+
+config:
+	@touch config.mk
+	@./Configure
+
+config.mk: config.out
+	$(MAKE) auto_config
+
+config.out:
+	@$(MAKE) help_noconfig
+	@exit 1
+
+tags: tags.linux dummy
+	if [ -r tags.linux ]; then cp tags.linux tags; fi 
+	find . \
+		-name '*.[ch]' -o \
+		-name '*.mk' -o \
+		-iname 'Makefile' | \
+		xargs ctags -a $(CTAGOPTS)
+
+tags.linux:
+	if [ -h linux ]; then \
+		find linux/include \
+			-type d \( -name 'asm-*' -o -name config \) \
+			-prune -o \
+			-name '*.h' -print | \
+			xargs ctags -a -f $@ $(CTAGOPTS) && \
+		find linux/kernel linux/drivers linux/mm linux/fs \
+			linux/net linux/ipc linux/lib linux/init \
+			-name '*.[ch]' | \
+			xargs ctags -a -f $@ $(CTAGOPTS); \
+	fi
+
+TAGS: dummy
+	rm -f TAGS
+#	if [ -h linux ]; then cp linux/TAGS TAGS; fi 
+	{ find . -name '*.[ch]' -print ; \
+	  find . -name '*.[ch]' -print ; \
+	  find . -name '*.mk' -print ; \
+	  find . -iname 'Makefile' -print ; } | $(ETAGS) - $(ETAGSOPTS)
+
+dummy:
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/README b/abs/core-testing/wlan-ng26-utils/tmp/trunk/README
new file mode 100644
index 0000000..f81303c
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/README
@@ -0,0 +1,321 @@
+* README
+*
+* Copyright (C) 2001 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+=======================================================================
+Description:
+The linux-wlan package is a linux device driver and subsystem
+package that is intended to provide the full range of IEEE 802.11 MAC
+management capabilities for use in user-mode utilities and scripts.
+The package currently supports the Intersil 802.11b Prism2, Prism2.5, 
+and Prism3 reference designs for PCMCIA, PCI, and USB.  Additionally,
+the package includes support for PLX9052 based PCI to PCMCIA adapter
+with a few different PCMCIA cards.
+
+For a list of elements that are still undone, see the TODO file in 
+this directory
+
+=======================================================================
+License:
+See the COPYING and LICENSE files.
+
+=======================================================================
+Top level directory for linux-wlan-ng:
+./add-ons	- additional programs that are not build from the 
+                  top level make file
+./doc		- source distribution documentation
+./etc		- scripts used at run-time
+./man		- man pages
+./scripts	- contributed scripts that may do useful things
+./src		- source code for various components
+
+=======================================================================
+Build Instructions:
+
+NOTE: You may not need to build at all.  Binary packages are
+available for various distributions.  See the FAQ for where to go.
+
+NOTE: This release supports building four different drivers:
+
+   prism2_cs	Driver for Prism2.x & Prism3  PCMCIA cards.
+   prism2_pci	Driver for Prism2.5 (ISL3874) based _native_ PCI cards.
+   prism2_plx	Driver for Prism2.x PCMCIA cards when used with 
+		a PLX9052 PCI/PCMCIA adapter.
+   prism2_usb   Driver for Prism2.x USB adapters.
+
+
+Prerequisites:
+
+To build linux-wlan-ng you will need:
+   - Configured kernel source code for the kernel you are running.  
+     Ideally, this will be the resulting tree after building your own 
+     kernel.  Configured means that you have at least run 'make config',
+     'make menuconfig', or 'make xconfig'.  If you are trying to build
+     linux-wlan-ng for a previously existing kernel binary (one you did 
+     not build yourself), look for help on the mailing lists because it 
+     can be tricky.  I always run against kernels I've built myself, so I'm 
+     not much help in this area.
+   - The good David Leffler identified that if you are having difficulty
+     with *_netlink_* symbols, you may have a problem with 'make clean' in
+     the kernel tree.  Do a 'make mrproper' followed by 'make config' 
+     and the rest of the kernel build process.  'make mrproper' does
+     a more thorough cleaning of the kernel tree.  For more info, look
+     for David's comments in the linux-wlan-user mailing list.
+   - If you are building a driver for a PCMCIA card, you will also need
+     the configured PCMCIA source code for the pcmcia_cs subsystem you
+     are currently running.
+
+Building linux-wlan-ng:
+
+1)  untar the package using the command:
+
+    tar zxvf linux-wlan-ng-X.Y.Z.tar.gz
+
+2)  Make sure you have configured kernel and (optionally) pcmcia sources on 
+    your system.  Note that if you are _only_ building the prism2_pci,
+    prism2_plx, or prism2_usb drivers you don't need the pcmcia-cs 
+    source tree.
+
+3)  To configure the linux-wlan-ng package, run 'make config'.  The 
+    following set of questions will be asked. The default answer is in
+    braces (e.g. []).  Just press <Enter> to select the default answer:
+
+   - "Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]: "
+        Select "y" if you want to build the Prism PCMCIA driver.
+        If you select "n", the PCMCIA related questions below
+        will not be asked.
+
+   - Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        PLX PCI9052 PCI/PCMCIA adapter based solutions.
+
+   - Build Prism2.5 native PCI (_pci) driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        Prism2.5 ISL3874 based native PCI cards.  This includes
+        PCI add-in cards and the mini-pci modules included in some
+        notebook computers (but not all, some use internal USB modules).
+
+   - Build Prism2.5 USB (_usb) driver? (y/n) [y]: 
+        Select "y" if you want to build the Prism driver for 
+        Prism2.5 ISL3873 based USB adapters.  This includes
+        USB add-on modules and the internal modules included in some
+        notebook computers.
+
+   - Linux source directory [/usr/src/linux]: 
+        The config script will attempt to automagically find your kernel
+        source directory.  If found, the kernel source source directory
+        will be presented as the default selection.  If the default
+        selection is wrong, you may correct it here.
+
+   - pcmcia-cs source dir [/usr/src/pcmcia-cs-3.1.29]: 
+        If the "_cs" driver is selected above, the configure script will
+        attempt to present a reasonable default for the pcmcia source
+        directory.  If the presented directory is incorrect, you may
+        change it here.  If the "_cs" driver is not selected, this
+        prompt will not appear.
+
+   - PCMCIA script directory [/etc/pcmcia]: 
+        If the "_cs" driver is selected, this prompt allows you to 
+        change the location where the pcmcia scripts will be installed.
+        Only do this if you have installed the rest of the pcmcia_cs
+        scripts to a non-default location.
+
+   - Alternate target install root directory on host []:   
+        This prompt allows you to specify an alternative root directory
+        for the install process.
+
+   - Module install directory [/lib/modules/2.2.20]: 
+        Select where you want the driver modules to be installed.  The
+        script constructs a default location using the output of uname.
+        If you have not yet installed the kernel you will run linux-wlan
+        with, and the new kernel has a different version string, you will
+        need to change this value.
+
+   - Prefix for build host compiler? (rarely needed) []: 
+        When cross-compiling or using different compilers for kernel and
+        user-mode software, it is sometimes (but rarely) necessary to 
+        specify a different compiler prefix to use when compiling the 
+        _tools_ that are built to run on the build host during the 
+        linux-wlan-ng build process.
+
+   - Build for debugging (see doc/config.debug) (y/n) [y]: 
+        This option enables the inclusion of debug output generating
+        statements in the driver code.  Note that enabling those statements
+        requires the inclusion of insmod/modprobe command line arguments
+        when loading the modules.  See the document doc/config.debug
+        for more information.
+
+
+5)  To build the package, run 'make all'
+
+6)  To install the package, run 'make install' (as root).
+
+=======================================================================
+Configuring:
+
+NOTE:  linux-wlan-ng does not fully implement the wireless extensions
+       interface.  This means that you can't use iwconfig and its kin to 
+       set things up.  Instead, read on!
+
+As of linux-wlan-ng 0.1.16-pre5, the configuration and launch scripts have
+been largely re-written.  pcmcia/rc/hotplug now all use a common library 
+of routines and use the same set of configuration files.
+
+Now, everything relevant exists in /etc/wlan/*
+
+/etc/wlan/wlan.conf:
+
+	This file maps between wlan devices and network IDs, and contains
+	the names of all devices that should be initialized by the hotplug
+	and rc scripts.
+
+/etc/wlan/wlancfg-*
+
+	These files are per-network configurations.  This makes it easy to 
+	switch between different SSIDs and the various settings they may
+	require, like WEP keys and whatnot.
+
+The bare minimum you need to do to configure your system after a fresh driver
+install:
+
+0)  Nothing whatsoever.  out-of-the-box, the driver will attempt to associate
+    with any access point within range.
+
+However, we highly recommend setting up a configuration specifically for
+your network, using the following method:
+
+0)  This example assumes your network name/SSID is "MyHomeNetwork"
+1)  cp /etc/wlan/wlancfg-DEFAULT /etc/wlan/wlancfg-MyHomeNetwork
+2)  edit /etc/wlan/wlan.conf and change the SSID_wlan0 line to:
+	SSID_wlan0="MyHomeNetwork"
+3)  edit /etc/wlan/wlancfg-MyHomeNetwork, and make any necessary changes 
+    necessary to support your network, such as WEP and whatnot.
+
+------------------------------
+FOR PCMCIA USERS:
+A)  Edit /etc/pcmcia/network.opts file to set up your IP settings. 
+    Note: for a station, the SSID you're connecting to will be appended to the 
+    current pcmcia scheme name.  You can use this to have different
+    IP setups for different wireless LANs you connect to (e.g. home vs. work).
+
+    Note2:  This only applies if you are using a stock pcmcia-cs 
+    package.  Most (if not all) distros use their own mechanisms for 
+    configuring pcmcia network interfaces, and thus 
+    /etc/pcmcia/network.opts may not even be present.
+
+B)  Restart pcmcia-cs with the command:
+
+    /etc/rc.d/init.d/pcmcia restart
+
+C) Insert the card.  For most cards, a solid LED indicates that the 
+    SSID you specified was found, a bss was joined, and the firmware 
+    completed the authenticate and associate processes.
+
+D) Run ifconfig and route to determine if your IP and route settings are
+    listed as you wanted them.  It's also a good idea to look at the file
+    /etc/resolv.conf to see if your nameserver address has been set up 
+    correctly.
+
+------------------------------
+FOR PCI, PLX, OR USB USERS:
+A) You must make sure that the drivers get loaded at boot time and that the 
+   necessary initialization takes place.  The simplest way to do this is
+   to add the following commands to your rc.local file:
+
+     modprobe prism2_pci   [or prism2_usb/prism2_plx]
+     wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
+     wlanctl-ng wlan0 lnxreq_autojoin ssid=<your APs SSID> authtype=opensystem
+     ifconfig wlan0 <yourIP> netmask <yourNetmask> broadcast <yourBroadcast>
+     route add default gw <yourGateway>
+
+   Also, don't forget to set up your resolv.conf to point at your DNS server.
+
+B) Alternatively, you can use the rc.wlan script, which ties into the 
+   /etc/wlan/* configuration files mentioned above.
+
+   We currently don't create the softlink from the runlevel directories to
+   the wlan startup script due to differences in distributions, but the
+   scripts are redhat-aware, and can be extended to hook into other tools
+   easily.  (patches welcome!)  Just make sure it is brought up early in 
+   the process, namely, before the the network interfaces are brought up. 
+
+C) Add an alias for wlan0 in /etc/modules.conf.  For example, a usb 
+   interface on wlan0 would be set up as:
+
+   alias wlan0 prism2_usb
+
+   Substitute prism2_plx or prism2_pci as appropriate.
+
+------------------------------
+FOR USB USERS:
+
+A) Make sure your kernel usb support is running
+B) Plug in the Prism2.x USB device
+C) Run 'modprobe prism2_usb prism2_doreset=1' to load the driver into memory.
+D) Run 'wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable' to initialize the
+   driver+MAC functions.
+E) Run 'wlanctl-ng wlan0 lnxreq_autojoin ssid=<your ssid> authtype=opensystem'
+   to enable the MAC in Infrastructure Station mode.
+F) Run 'ifconfig wlan0 <your IP address>'
+
+Or, you can use the provided hotplug scripts, if your distribution has
+hotplug support.  :) 
+
+IMPORTANT: Due to an issue with some versions of the Prism USB firmware,
+the driver usually needs to perform a port reset.  
+
+Some combinations of usb low-level drivers, kernel releases, and
+hardware don't like this, and usually end up generating a kernel OOPS.
+newer kernels are much better in this regard.  In particular, Intel usb
+controllers are the most trouble-prone.
+
+The OOPS is due to bugs in the linux USB core, and newer kernels
+(2.4.19 and later) behave much better in this regard.
+
+However, the good news is that primary firmware 1.1.2 seems to resolve
+the need for the port reset to begin with.  Contact your vendor to
+request this update.
+
+Also, using the 'Alt. UHCI' controller driver (uhci.o) is broken with 
+kernels older than 2.4.22 due to a bug in the controller driver.
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS b/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS
new file mode 100644
index 0000000..b32691f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/THANKS
@@ -0,0 +1,147 @@
+Linux WLAN package
+
+CONTRIBUTORS
+This project was initially developed for personal interest and use.
+It has since evolved into it's current state through the support and
+contributions of many individuals who have taken an interest in this
+project.  We appreciate the source code contributions and bug fixes
+from those who didn't want to wait on us and fearlessly dived into
+the source code to either add a feature or fix a bug.  
+
+Contributions to the project are not limited to source code
+and bug fixes.  Addtitional contributions include (but not limited to)
+reporting bugs, documentation, test results, helpful and enlightening
+dicussions on the project's mailing lists, kind words and feedback
+from users as well as commercial support for the project.
+
+Additionally, we'd like to thank the vendors who have contributed
+wireless network cards for testing the driver.  To see a listing of
+supported wireless cards, visit the Linux WLAN Project page at our
+web site.   http://www.linux-wlan.com
+
+Below are some of the contributors to the project.  Contributions are
+made often.  Therefore, the list is never "current" even in the 
+most recent release of the project.  ;-)
+
+This list includes contributors to the original linux-wlan Prism1 
+driver as well as contributors to this package.
+
+deadparrot - an anonymous contributor who's been an enormous help.
+             You know who you are.
+Robert Coie <irac@intrigue.com>
+Geoff Hibble <ghibble@adevice.com>
+Yoshimura Haba <haba@melcoinc.co.jp>
+Dries Buytaert <s965424@uia.ua.ac.be>
+Derrick Brashear <shadow@dementia.org>
+Tony Awtrey <tony@awtrey.com>
+Peter Teuben <teuben@astro.umd.edu>
+hong <u4830467@ug.ee.tku.edu.tw>
+Greg Smith <gsmith@westnet.com>
+Peter Kundrat <kundrat@pkx.sk>
+James Hicks <jamey@crl.dec.com>
+Erik Kunze <Erik.Kunze@fantasy.muc.de>
+Larrick, Douglas <Doug.Larrick@compaq.com>
+Cagle, John <John.Cagle@compaq.com>
+Rob Braun <bbraun@synack.net>
+Terry Griffin <griffint@pobox.com>
+Ken Gordon <ken@magneticscrolls.com>
+Pavel Roskin <proski@frontpath.com>
+Scott Franzyshen <sfranzyshen@lazerlink.net>
+Will Woods <Will.Woods@compaq.com>
+Bill Carr <Bill.Carr@compaq.com>
+David Hsu <davidhsu@ficnet.net>
+Alessandro <acevirgil@inwind.it>
+Jouni Malinen <jkmaline@cc.hut.fi>
+Bob James<bob.james@rebel.com>
+Calvin Fang <cfang@otcwireless.com>
+Jim Suhr <jimrsuhr@earthlink.net>
+Vragor <vragor@home.com>
+Chris Rankin <rankinc@pacbell.net>
+Michael Carmack <karmak@karmak.org>
+Mark Taylor <mt@mp3dev.org>
+Ben Gertzfield <che@debian.org>
+Daniel Lyddy <sprocket@path.berkeley.edu>
+Bryan Smith <b.j.smith@ieee.org>
+Stuffed Crust <pizza@shaftnet.org> (aka Solomon Peachy)
+Reyk Floeter <reyk@synack.de>
+Adam Richter <adam@yggdrasil.com>
+Collin Mulliner <wlan@betaversion.net>
+Mike Kershaw <dragorn@nerv-un.net>
+David Leffler <dleffler@lynku.net>
+Godmar Back <gback@stanford.edu>
+Jean Tourrilhes <jt@hpl.hp.com>
+Erik McKee <camhanaich99@yahoo.com>
+Jack Diedrich <jackdied@yahoo.com>
+Caz Yokoyama <caz@caztech.com>
+Matthias Welwarsky <matze@stud.fbi.fh-darmstadt.de>
+David Brownell <david-b@pacbell.net>
+Henri Muurimaa <hezamu@tuug.fi>
+Bryan Huang <bryan.huang@bromax.com.tw>
+Tony Seward <anthony.seward@ieee.org>
+Matthias Welk <welk@fokus.gmd.de>
+Josh Wyatt <Josh.Wyatt@hcssystems.com>
+Tim Fletcher <tim@parrswood.manchester.sch.uk>
+Tim Miller <tim.miller@vanderbilt.edu>
+Remy Cool <remy.cool@smartology.nl>
+Mike Klar <mfklar@tivo.com>
+Tony Likhite <tony@likhite.net>
+David Everly <deckrider@yahoo.com>
+Nick Jafa <jafa@silicondust.com>
+James Goodwin <jamesg@Filanet.com>
+Derek Atkins <warlord@mit.edu>
+Michael Beattie <mjb@debian.org>
+Joey Hess <joey@kitenet.net>
+Clay Jones <cjones1@email.com>
+Matthew Rush <matthew@42.co.nz>
+Tom Prado <tprado@charter.net>
+Olivier Bornet <Olivier.Bornet@puck.ch>
+Ryan Veety <ryan@ryanspc.com>
+Michael Hackett <mhackett@kanayo.com>
+Pavel Kankovsky <kan@dcit.cz>
+Brad Davidson <kiloman@oatmail.org>
+Ralf Miunske <miunske@users.sourceforge.net>
+Juan Conde <juan.conde@juntadeandalucia.es>
+Ichiro Doi <ichiro@d-o-i.net>
+Jeff Chua <jchua@fedex.com>
+Chris Wilson <chris@qwirx.com>
+Daniel Jiseok Song <jssong@wooritg.com>
+Albert Pauw <apauw@chello.nl>
+Andrew Beresford <beezly@beezly.org.uk>
+Stephan M�ller <smueller@chronox.de>
+Henry Ip <henryiphk@hotmail.com>
+Andre McCurdy <armcc2000@yahoo.com>
+Allan Claghorn <aclag@sdk.ath.cx>
+Steve Berry <vze4tzdm@verizon.net>
+Dan Noe <dpn@isomerica.net>
+Natsakis Konstantinos <cyfex@wthess.net>
+Greg Weeks <greg.weeks@timesys.com>
+Francesco Bochicchio <bockman@virgilio.it>
+Federico Pellegrin <fede.evol@virgilio.it>
+Nemanja Jakovljevic <nemanjaj@sezampro.yu>
+Shiro Ninomiya <shiro@margi.com>
+Josef Kriegl <jkriegl@sensoria.com>
+Arnold Liu <asliu23@yahoo.com>
+Alain Chehikian <alain.chehikian@cegetel.net>
+Ashish <thermalvoid@yahoo.com>
+J.D. Cole <listguy@transientresearch.com>
+Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
+Colin Leroy <colin@colino.net>
+Giacomo Lozito <city_hunter@noway.it>
+Armijn Hemel <armijn@uulug.nl>
+Dan Williams <dcbw@redhat.com>
+Andrzej Turowski <andrzej@turowski_NOSPAM_.com>
+Tim Huck <duceusmeus@yahoo.com>
+Ekin Meroglu <ekin@fisek.com.tr>
+Eric Koenders <Eric.Koenders@peekglobal.com>
+Andreas Schultes <flirt@hold-clan.de>
+Victor Seva Lopez <linuxmaniac@torreviejawireless.org>
+Richard Kennedy <richard@rsk.demon.co.uk>
+Tormod Volden <lists.tormod@gmail.com>
+Karl Relton <karllinuxtest.relton@ntlworld.com>
+
+[Many, many more.  If I've overlooked you and you want to be listed here, 
+send me e-mail and I'll fix it.  I _know_ a bunch of linux-wlan contributors
+are missing.]
+
+-- Our Sincerest Thanks to all contributors, users and vendors
+	AbsoluteValue Systems, Inc.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO b/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO
new file mode 100644
index 0000000..57ac976
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/TODO
@@ -0,0 +1,86 @@
+* TODO
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+Linux WLAN NG TODO
+- Make the command-completion interrupt driven vs busywaiting.
+- Possibly hook up DMA on the Rx side for PCI devices
+- [USB] Remove driver's port-reset when new primary firmware becomes
+  available.
+- Review changes necessary for static linking to kernel
+- Display the MAC and BBP partnum & revision at initialization time
+- Perform a more effective I/O access test and an irq test at 
+  initialization time
+- Detect dead card and perform reset and reinitialization
+- Finish the prism2 request responses for STA and AP
+  Station:
+	powermgmt
+	join
+	authenticate
+	deauthenticate
+	associate (currently only partially functional)
+	disassociate
+	reassociate
+	start
+	reset
+  Access Point
+  	deauthenticate
+	disassociate
+	reset
+
+- Finish the mibget/mibset
+  PHY MIBS
+  Prism2 specific mibs (represent all RIDs)
+
+- Add event detection and notification of daemon
+  Station:
+  	deauthenticate
+	disassociate
+	rxpwer_l2
+	rxpwer_l1
+  Access Point:
+  	associate
+	authenticate
+	reassociate
+- Add event handling scripts for the events above
+- Add AP support for power managing stations
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries
new file mode 100644
index 0000000..5ee3f9e
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/entries
@@ -0,0 +1,34 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2003-03-24T16:18:08.000000Z
+1324
+solomon
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+lwepgen
+dir
+
+keygen
+dir
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries
new file mode 100644
index 0000000..f2a74e1
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/entries
@@ -0,0 +1,96 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons/keygen
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2002-10-17T13:10:18.000000Z
+1163
+solomon
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+keygen.c
+file
+
+
+
+
+2009-01-07T08:12:58.000000Z
+9fc5f9b33c3182b4dd0f975cc46c5302
+2002-10-17T13:10:18.000000Z
+1163
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3571
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:12:58.000000Z
+2db68c77af844f5bd78e16ffe19a64bd
+2002-05-24T12:11:30.000000Z
+912
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1884
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/prop-base/keygen.c.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..0561a9e
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,49 @@
+# Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+keygen:
+	gcc -o keygen keygen.c -lcrypto
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base
new file mode 100644
index 0000000..fe29738
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/.svn/text-base/keygen.c.svn-base
@@ -0,0 +1,183 @@
+/*
+ * keygen.c
+ *	WEP Key Generators
+ *
+ * This program generates WEP keys using de facto standard key
+ * generators for 40 and 128 bit keys.
+ *
+ * Link against OpenSSL's libcrypto.a
+ *
+ * I place this code in the public domain.
+ * May 2001, Tim Newsham
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <openssl/md5.h>
+
+#define WEPKEYSIZE      	5
+#define WEPSTRONGKEYSIZE	13
+#define WEPKEYS         	4
+#define WEPKEYSTORE     	(WEPKEYSIZE * WEPKEYS)
+#define WEPSTRONGKEYSTORE	(WEPSTRONGKEYSIZE * WEPKEYS)
+
+/*
+ * generate four subkeys from a seed using the defacto standard
+ */
+void
+wep_seedkeygen(int val, u_char *keys)
+{
+    int i;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        val *= 0x343fd;
+        val += 0x269ec3;
+        keys[i] = val >> 16;
+    }
+    return;
+}
+
+/*
+ * generate one key from a string using the de facto standard
+ *
+ * resultant key is stored in
+ *   one 128 bit key: keys[0-15]
+ *
+ * (NOTE: I'm not sure why, but it seems that only values 0-12 are used,
+ * resulting in 104 bits of keying, not 128)
+ */
+void
+wep_keygen128(char *str, u_char *keys)
+{
+    MD5_CTX ctx;
+    u_char buf[64];
+    int i, j;
+
+    /* repeat str until buf is full */
+    j = 0;
+    for(i = 0; i < 64; i++) {
+        if(str[j] == 0)
+            j = 0;
+        buf[i] = str[j++];
+    }
+
+    MD5_Init(&ctx);
+    MD5_Update(&ctx, buf, sizeof buf);
+    MD5_Final(buf, &ctx);
+
+    memcpy(keys, buf, WEPSTRONGKEYSTORE);
+    for(i = 0; i < WEPSTRONGKEYSIZE; i++) {
+        keys[i] = buf[i];
+    }
+    for(; i < WEPSTRONGKEYSTORE; i++) {
+        keys[i] = 0;
+    }
+    return;
+}
+
+/* 
+ * generate four subkeys from a string using the defacto standard
+ *
+ * resultant keys are stored in 
+ *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20]
+ */
+void
+wep_keygen40(char *str, u_char *keys) 
+{
+    int val, i, shift;
+
+    /*
+     * seed is generated by xor'ing in the keystring bytes
+     * into the four bytes of the seed, starting at the little end
+     */
+    val = 0;
+    for(i = 0; str[i]; i++) {
+        shift = i & 0x3;
+        val ^= (str[i] << (shift * 8));
+    }
+
+    wep_seedkeygen(val, keys);
+    return;
+}
+
+void
+wep_keyprint40(u_char *keys)
+{
+    int i;
+    char sepchar;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        sepchar = (i % WEPKEYSIZE == WEPKEYSIZE - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+
+void
+wep_keyprint128(u_char *keys)
+{
+    int i;
+    char sepchar;
+
+    for(i = 0; i < WEPSTRONGKEYSTORE; i++) {
+        sepchar = (i % WEPSTRONGKEYSIZE == WEPSTRONGKEYSIZE - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+void
+usage(char *prog)
+{
+    printf("Usage:  %s keystring [-s || 5 || 13]\n", prog);
+    exit(1);
+}
+
+int
+main(int argc, char **argv) 
+{
+    u_char keys[WEPKEYSTORE];
+    u_char strongkeys[WEPSTRONGKEYSTORE];
+    char *prog, *genstr;
+    int strong, ch;
+
+    prog = argv[0];
+    strong = 0;
+    while((ch = getopt(argc, argv, "s")) != EOF) {
+        switch(ch) {
+        case 's':
+            strong ++;
+            break;
+        default:
+            usage(prog);
+        }
+    }
+    argc -= optind;
+    argv += optind;
+
+    if(argc==2) 
+    	if(!strcmp(argv[1],"13")) 
+	{ 
+		strong++; 
+		argc--; 
+	}
+	else argc--;
+
+    if(argc != 1)
+        usage(prog);
+    genstr = argv[0];
+
+    if(strong)
+    {
+        wep_keygen128(genstr, strongkeys);
+        wep_keyprint128(strongkeys);
+    }
+    else
+    {
+        wep_keygen40(genstr, keys);
+        wep_keyprint40(keys);
+    }
+    return 0;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile
new file mode 100644
index 0000000..0561a9e
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/Makefile
@@ -0,0 +1,49 @@
+# Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+keygen:
+	gcc -o keygen keygen.c -lcrypto
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c
new file mode 100644
index 0000000..fe29738
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/keygen/keygen.c
@@ -0,0 +1,183 @@
+/*
+ * keygen.c
+ *	WEP Key Generators
+ *
+ * This program generates WEP keys using de facto standard key
+ * generators for 40 and 128 bit keys.
+ *
+ * Link against OpenSSL's libcrypto.a
+ *
+ * I place this code in the public domain.
+ * May 2001, Tim Newsham
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <openssl/md5.h>
+
+#define WEPKEYSIZE      	5
+#define WEPSTRONGKEYSIZE	13
+#define WEPKEYS         	4
+#define WEPKEYSTORE     	(WEPKEYSIZE * WEPKEYS)
+#define WEPSTRONGKEYSTORE	(WEPSTRONGKEYSIZE * WEPKEYS)
+
+/*
+ * generate four subkeys from a seed using the defacto standard
+ */
+void
+wep_seedkeygen(int val, u_char *keys)
+{
+    int i;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        val *= 0x343fd;
+        val += 0x269ec3;
+        keys[i] = val >> 16;
+    }
+    return;
+}
+
+/*
+ * generate one key from a string using the de facto standard
+ *
+ * resultant key is stored in
+ *   one 128 bit key: keys[0-15]
+ *
+ * (NOTE: I'm not sure why, but it seems that only values 0-12 are used,
+ * resulting in 104 bits of keying, not 128)
+ */
+void
+wep_keygen128(char *str, u_char *keys)
+{
+    MD5_CTX ctx;
+    u_char buf[64];
+    int i, j;
+
+    /* repeat str until buf is full */
+    j = 0;
+    for(i = 0; i < 64; i++) {
+        if(str[j] == 0)
+            j = 0;
+        buf[i] = str[j++];
+    }
+
+    MD5_Init(&ctx);
+    MD5_Update(&ctx, buf, sizeof buf);
+    MD5_Final(buf, &ctx);
+
+    memcpy(keys, buf, WEPSTRONGKEYSTORE);
+    for(i = 0; i < WEPSTRONGKEYSIZE; i++) {
+        keys[i] = buf[i];
+    }
+    for(; i < WEPSTRONGKEYSTORE; i++) {
+        keys[i] = 0;
+    }
+    return;
+}
+
+/* 
+ * generate four subkeys from a string using the defacto standard
+ *
+ * resultant keys are stored in 
+ *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20]
+ */
+void
+wep_keygen40(char *str, u_char *keys) 
+{
+    int val, i, shift;
+
+    /*
+     * seed is generated by xor'ing in the keystring bytes
+     * into the four bytes of the seed, starting at the little end
+     */
+    val = 0;
+    for(i = 0; str[i]; i++) {
+        shift = i & 0x3;
+        val ^= (str[i] << (shift * 8));
+    }
+
+    wep_seedkeygen(val, keys);
+    return;
+}
+
+void
+wep_keyprint40(u_char *keys)
+{
+    int i;
+    char sepchar;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        sepchar = (i % WEPKEYSIZE == WEPKEYSIZE - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+
+void
+wep_keyprint128(u_char *keys)
+{
+    int i;
+    char sepchar;
+
+    for(i = 0; i < WEPSTRONGKEYSTORE; i++) {
+        sepchar = (i % WEPSTRONGKEYSIZE == WEPSTRONGKEYSIZE - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+void
+usage(char *prog)
+{
+    printf("Usage:  %s keystring [-s || 5 || 13]\n", prog);
+    exit(1);
+}
+
+int
+main(int argc, char **argv) 
+{
+    u_char keys[WEPKEYSTORE];
+    u_char strongkeys[WEPSTRONGKEYSTORE];
+    char *prog, *genstr;
+    int strong, ch;
+
+    prog = argv[0];
+    strong = 0;
+    while((ch = getopt(argc, argv, "s")) != EOF) {
+        switch(ch) {
+        case 's':
+            strong ++;
+            break;
+        default:
+            usage(prog);
+        }
+    }
+    argc -= optind;
+    argv += optind;
+
+    if(argc==2) 
+    	if(!strcmp(argv[1],"13")) 
+	{ 
+		strong++; 
+		argc--; 
+	}
+	else argc--;
+
+    if(argc != 1)
+        usage(prog);
+    genstr = argv[0];
+
+    if(strong)
+    {
+        wep_keygen128(genstr, strongkeys);
+        wep_keyprint128(strongkeys);
+    }
+    else
+    {
+        wep_keygen40(genstr, keys);
+        wep_keyprint40(keys);
+    }
+    return 0;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries
new file mode 100644
index 0000000..1e4c690
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/entries
@@ -0,0 +1,96 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/add-ons/lwepgen
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2003-03-24T16:18:08.000000Z
+1324
+solomon
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+lwepgen.c
+file
+
+
+
+
+2009-01-07T08:12:58.000000Z
+01822ba621fad68032adc8c34f0b80cd
+2003-03-24T16:18:08.000000Z
+1324
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3303
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:12:58.000000Z
+5bbbaae86af09228581cd7d42a4bc23a
+2003-03-24T16:18:08.000000Z
+1324
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+160
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/prop-base/lwepgen.c.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..e960692
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,11 @@
+default: lwepgen
+
+lwepgen: lwepgen.c
+	 gcc -Wl,/usr/lib/libcrypto.so -o lwepgen lwepgen.c
+	 
+lwepgen.c:
+	echo lwepgen.c missing!
+	false
+
+clean:
+	rm -rf lwepgen
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base
new file mode 100644
index 0000000..73dc439
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/.svn/text-base/lwepgen.c.svn-base
@@ -0,0 +1,162 @@
+/*
+ * keygen.c
+ *      WEP Key Generators
+ *
+ * This program generates WEP keys using de facto standard key
+ * generators for 40 and 128 bit keys.
+ *
+ * Link against OpenSSL's libcrypto.a
+ *
+ * I place this code in the public domain.
+ * May 2001, Tim Newsham
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <openssl/md5.h>
+
+#define WEPKEYSIZE              5
+#define WEPSTRONGKEYSIZE        13
+#define WEPKEYS                 4
+#define WEPKEYSTORE             (WEPKEYSIZE * WEPKEYS)
+
+/*
+ * generate four subkeys from a seed using the defacto standard
+ */
+void
+wep_seedkeygen(int val, u_char *keys)
+{
+    int i;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        val *= 0x343fd;
+        val += 0x269ec3;
+        keys[i] = val >> 16;
+    }
+    return;
+}
+
+/*
+ * generate one key from a string using the de facto standard
+ *
+ * resultant key is stored in
+ *   one 128 bit key: keys[0-15]
+ *
+ * (NOTE: I'm not sure why, but it seems that only values 0-12 are used,
+ * resulting in 104 bits of keying, not 128)
+ */
+void
+wep_keygen128(char *str, u_char *keys)
+{
+    MD5_CTX ctx;
+    u_char buf[64];
+    int i, j;
+
+    /* repeat str until buf is full */
+    j = 0;
+    for(i = 0; i < 64; i++) {
+        if(str[j] == 0)
+            j = 0;
+        buf[i] = str[j++];
+    }
+
+    MD5_Init(&ctx);
+    MD5_Update(&ctx, buf, sizeof buf);
+    MD5_Final(buf, &ctx);
+
+    memcpy(keys, buf, WEPKEYSTORE);
+    for(i = 0; i < WEPSTRONGKEYSIZE; i++) {
+        keys[i] = buf[i];
+    }
+    for(; i < WEPKEYSTORE; i++) {
+        keys[i] = 0;
+    }
+    return;
+}
+
+/* 
+ * generate four subkeys from a string using the defacto standard
+ *
+ * resultant keys are stored in 
+ *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20]
+ */
+void
+wep_keygen40(char *str, u_char *keys) 
+{
+    int val, i, shift;
+
+    /*
+     * seed is generated by xor'ing in the keystring bytes
+     * into the four bytes of the seed, starting at the little end
+     */
+    val = 0;
+    for(i = 0; str[i]; i++) {
+        shift = i & 0x3;
+        val ^= (str[i] << (shift * 8));
+    }
+
+    wep_seedkeygen(val, keys);
+    return;
+}
+
+void
+wep_keyprint(u_char *keys, int strong)
+{
+    int i, printlength, keylength;
+    char sepchar;
+    
+    printlength = strong ? WEPSTRONGKEYSIZE : WEPKEYSTORE;
+    keylength   = strong ? WEPSTRONGKEYSIZE : WEPKEYSIZE;
+
+    for(i = 0; i < printlength; i++) {
+        sepchar = (i % keylength == keylength - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+
+void
+usage(char *prog)
+{
+    printf("%s: generates Lucent compatible WEP keys from a string\n", prog);
+    printf("Usage:  %s [-s] keystring\n", prog);
+    exit(1);
+}
+
+int
+main(int argc, char **argv) 
+{
+    u_char keys[WEPKEYSTORE];
+    char *prog, *genstr;
+    int strong, ch;
+
+    prog = argv[0];
+    strong = 0;
+    while((ch = getopt(argc, argv, "s")) != EOF) {
+        switch(ch) {
+        case 's':
+            strong ++;
+            break;
+        default:
+            usage(prog);
+        }
+    }
+    argc -= optind;
+    argv += optind;
+
+    if(argc != 1)
+        usage(prog);
+    genstr = argv[0];
+
+    if(strong)
+        wep_keygen128(genstr, keys);
+    else
+        wep_keygen40(genstr, keys);
+
+    wep_keyprint(keys, strong);
+
+    return 0;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile
new file mode 100644
index 0000000..e960692
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/Makefile
@@ -0,0 +1,11 @@
+default: lwepgen
+
+lwepgen: lwepgen.c
+	 gcc -Wl,/usr/lib/libcrypto.so -o lwepgen lwepgen.c
+	 
+lwepgen.c:
+	echo lwepgen.c missing!
+	false
+
+clean:
+	rm -rf lwepgen
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c
new file mode 100644
index 0000000..73dc439
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/add-ons/lwepgen/lwepgen.c
@@ -0,0 +1,162 @@
+/*
+ * keygen.c
+ *      WEP Key Generators
+ *
+ * This program generates WEP keys using de facto standard key
+ * generators for 40 and 128 bit keys.
+ *
+ * Link against OpenSSL's libcrypto.a
+ *
+ * I place this code in the public domain.
+ * May 2001, Tim Newsham
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <openssl/md5.h>
+
+#define WEPKEYSIZE              5
+#define WEPSTRONGKEYSIZE        13
+#define WEPKEYS                 4
+#define WEPKEYSTORE             (WEPKEYSIZE * WEPKEYS)
+
+/*
+ * generate four subkeys from a seed using the defacto standard
+ */
+void
+wep_seedkeygen(int val, u_char *keys)
+{
+    int i;
+
+    for(i = 0; i < WEPKEYSTORE; i++) {
+        val *= 0x343fd;
+        val += 0x269ec3;
+        keys[i] = val >> 16;
+    }
+    return;
+}
+
+/*
+ * generate one key from a string using the de facto standard
+ *
+ * resultant key is stored in
+ *   one 128 bit key: keys[0-15]
+ *
+ * (NOTE: I'm not sure why, but it seems that only values 0-12 are used,
+ * resulting in 104 bits of keying, not 128)
+ */
+void
+wep_keygen128(char *str, u_char *keys)
+{
+    MD5_CTX ctx;
+    u_char buf[64];
+    int i, j;
+
+    /* repeat str until buf is full */
+    j = 0;
+    for(i = 0; i < 64; i++) {
+        if(str[j] == 0)
+            j = 0;
+        buf[i] = str[j++];
+    }
+
+    MD5_Init(&ctx);
+    MD5_Update(&ctx, buf, sizeof buf);
+    MD5_Final(buf, &ctx);
+
+    memcpy(keys, buf, WEPKEYSTORE);
+    for(i = 0; i < WEPSTRONGKEYSIZE; i++) {
+        keys[i] = buf[i];
+    }
+    for(; i < WEPKEYSTORE; i++) {
+        keys[i] = 0;
+    }
+    return;
+}
+
+/* 
+ * generate four subkeys from a string using the defacto standard
+ *
+ * resultant keys are stored in 
+ *   four 40 bit keys: keys[0-4], keys[5-9], keys[10-14] and keys[15-20]
+ */
+void
+wep_keygen40(char *str, u_char *keys) 
+{
+    int val, i, shift;
+
+    /*
+     * seed is generated by xor'ing in the keystring bytes
+     * into the four bytes of the seed, starting at the little end
+     */
+    val = 0;
+    for(i = 0; str[i]; i++) {
+        shift = i & 0x3;
+        val ^= (str[i] << (shift * 8));
+    }
+
+    wep_seedkeygen(val, keys);
+    return;
+}
+
+void
+wep_keyprint(u_char *keys, int strong)
+{
+    int i, printlength, keylength;
+    char sepchar;
+    
+    printlength = strong ? WEPSTRONGKEYSIZE : WEPKEYSTORE;
+    keylength   = strong ? WEPSTRONGKEYSIZE : WEPKEYSIZE;
+
+    for(i = 0; i < printlength; i++) {
+        sepchar = (i % keylength == keylength - 1) ? '\n' : ':';
+        printf("%02x%c", keys[i], sepchar);
+    }
+    return;
+}
+
+void
+usage(char *prog)
+{
+    printf("%s: generates Lucent compatible WEP keys from a string\n", prog);
+    printf("Usage:  %s [-s] keystring\n", prog);
+    exit(1);
+}
+
+int
+main(int argc, char **argv) 
+{
+    u_char keys[WEPKEYSTORE];
+    char *prog, *genstr;
+    int strong, ch;
+
+    prog = argv[0];
+    strong = 0;
+    while((ch = getopt(argc, argv, "s")) != EOF) {
+        switch(ch) {
+        case 's':
+            strong ++;
+            break;
+        default:
+            usage(prog);
+        }
+    }
+    argc -= optind;
+    argv += optind;
+
+    if(argc != 1)
+        usage(prog);
+    genstr = argv[0];
+
+    if(strong)
+        wep_keygen128(genstr, keys);
+    else
+        wep_keygen40(genstr, keys);
+
+    wep_keyprint(keys, strong);
+
+    return 0;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in b/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in
new file mode 100644
index 0000000..0f8d182
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/config.in
@@ -0,0 +1,20 @@
+WLAN_VERSION=0
+WLAN_PATCHLEVEL=2
+WLAN_SUBLEVEL=9
+WLAN_EXTRAVERSION=
+#LINUX_SRC=/usr/src/linux
+PREFIX=
+INST_EXEDIR=/sbin
+TARGET_ROOT_ON_HOST=
+RC_DIR=/etc/rc.d
+PCMCIA_DIR=/etc/pcmcia
+SYSV_INIT=y
+INSTALL_DEPMOD=y
+WLAN_DEBUG=n
+CROSS_COMPILE_ENABLED=n
+CROSS_COMPILE=
+HOST_COMPILE=
+PRISM2_PLX=y
+PRISM2_PCMCIA=y
+PRISM2_PCI=y
+PRISM2_USB=y
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries
new file mode 100644
index 0000000..a49e893
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/entries
@@ -0,0 +1,241 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2007-10-17T18:58:05.944684Z
+1839
+pizza
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+config.linux-wlan-ng
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+6830829aaa7e2280078a0fcc562e6ec5
+2002-09-06T01:08:27.000000Z
+1067
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10294
+
+capturefrm.txt
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+ad468bf186a23666249371951d74bc5e
+2007-10-17T18:58:05.944684Z
+1839
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7563
+
+config.debug
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+1137d57291230e165779980a17a9411d
+2001-12-11T19:41:57.000000Z
+771
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3560
+
+rh71notes
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+d440b562f9d9f022f2de4f301818bd8d
+2001-09-24T13:46:26.000000Z
+701
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1761
+
+prism2
+dir
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+de8810cf3c6af60ef86948e6577dd5a6
+2005-01-26T22:01:07.661267Z
+1678
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2066
+
+codingstd
+dir
+
+impnotes
+dir
+
+releasepolicy.txt
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+1d1c02df575c560da6195f1a98b77b16
+2001-12-14T19:48:31.000000Z
+807
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1571
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/capturefrm.txt.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.debug.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/config.linux-wlan-ng.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/releasepolicy.txt.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/prop-base/rh71notes.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..9dfce56
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,56 @@
+# doc/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+all:
+	@echo "Nothing to do..."
+
+install:
+	@echo "Nothing to do..."
+
+clean:
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base
new file mode 100644
index 0000000..9ea908d
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/capturefrm.txt.svn-base
@@ -0,0 +1,233 @@
+AVS Capture Frame Format
+Version 2.1.1
+
+1. Introduction
+The original header format for "monitor mode" or capturing frames was
+a considerable hack.  The document covers a redesign of that format.
+
+  Any questions, corrections, or proposed changes go to info@linux-wlan.com
+
+2. Frame Format
+All sniff frames follow the same format:
+
+	Offset	Name		Size		Description
+	--------------------------------------------------------------------
+	0	CaptureHeader			AVS capture metadata header
+	64	802.11Header	[10-30]		802.11 frame header
+	??	802.11Payload	[0-2312]	802.11 frame payload
+	??	802.11FCS	4		802.11 frame check sequence
+
+Note that the header and payload are variable length and the payload
+may be empty.
+
+If the hardware does not supply the FCS to the driver, then the frame shall
+have a FCS of 0xFFFFFFFF.
+
+3. Byte Order
+All multibyte fields of the capture header are in "network" byte
+order.  The "host to network" and "network to host" functions should
+work just fine.  All the remaining multibyte fields are ordered
+according to their respective standards.
+
+4. Capture Header Format
+The following fields make up the AVS capture header:
+
+	Offset	Name		Type
+	------------------------------
+	0	version		uint32
+	4	length		uint32
+	8	mactime		uint64
+	16	hosttime	uint64
+	24	phytype		uint32
+	28	frequency	uint32
+	32	datarate	uint32
+	36	antenna		uint32
+	40	priority	uint32
+	44	ssi_type	uint32
+	48	ssi_signal	int32
+	52	ssi_noise	int32
+	56	preamble	uint32
+	60	encoding	uint32
+	64	sequence	uint32
+	68      drops           uint32
+        72      receiver_addr   uint8[6]
+        78      padding         uint8[2]
+	------------------------------
+	80
+
+The following subsections detail the fields of the capture header.
+
+4.1 version
+The version field identifies this type of frame as a subtype of
+ETH_P_802111_CAPTURE as received by an ARPHRD_IEEE80211_PRISM or
+an ARPHRD_IEEE80211_CAPTURE device.  The value of this field shall be
+0x80211002.  As new revisions of this header are necessary, we can
+increment the version appropriately.
+
+4.2 length
+The length field contains the length of the entire AVS capture header,
+in bytes.
+
+4.3 mactime
+Many WLAN devices supply a relatively high resolution frame reception
+time value.  This field contains the value supplied by the device.  If
+the device does not supply a receive time value, this field shall be
+set to zero.  The units for this field are microseconds.  
+
+If possible, this time value should be absolute, representing the number
+of microseconds elapsed since the UNIX epoch.
+
+4.4 hosttime
+The hosttime field is set to the current value of the host maintained
+clock variable when the frame is received by the host. 
+
+If possible, this time value should be absolute, representing the number 
+of microseconds elapsed since the UNIX epoch.
+
+4.5 phytype
+The phytype field identifies what type of PHY is employed by the WLAN 
+device used to capture this frame.  The valid values are:
+
+	PhyType				Value
+	-------------------------------------
+	phytype_fhss_dot11_97		 1
+	phytype_dsss_dot11_97		 2
+	phytype_irbaseband		 3
+	phytype_dsss_dot11_b		 4
+	phytype_pbcc_dot11_b		 5
+	phytype_ofdm_dot11_g		 6
+	phytype_pbcc_dot11_g		 7
+	phytype_ofdm_dot11_a		 8
+	phytype_dss_ofdm_dot11_g	 9
+
+4.6 frequency
+
+This represents the frequency or channel number of the receiver at the 
+time the frame was received.  It is interpreted as follows:
+
+For frequency hopping radios, this field is broken in to the 
+following subfields:
+
+	Byte	Subfield
+	------------------------
+	Byte0	Hop Set
+	Byte1	Hop Pattern
+	Byte2	Hop Index
+	Byte3	reserved
+
+For non-hopping radios, the frequency is interpreted as follows:
+
+       Value                Meaning
+    -----------------------------------------
+       < 256	       Channel number (using externally-defined
+                         channelization)
+       < 10000         Center frequency, in MHz
+      >= 10000         Center frequency, in KHz
+
+4.7 datarate
+The data rate field contains the rate at which the frame was received
+in units of 100kbps.
+
+4.8 antenna
+For WLAN devices that indicate the receive antenna for each frame, the
+antenna field shall contain an index value into the dot11AntennaList.
+If the device does not indicate a receive antenna value, this field
+shall be set to zero.
+
+4.9 priority
+The priority field indicates the receive priority of the frame.  The
+value is in the range [0-15] with the value 0 reserved to indicate
+contention period and the value 6 reserved to indicate contention free
+period.
+
+4.10 ssi_type
+The ssi_type field is used to indicate what type of signal strength
+information is present: "None", "Normalized RSSI" or "dBm".  "None"
+indicates that the underlying WLAN device does not supply any signal
+strength at all and the ssi_* values are unset.  "Normalized RSSI"
+values are integers in the range [0-1000] where higher numbers
+indicate stronger signal.  "dBm" values indicate an actual signal 
+strength measurement quantity and are usually in the range [-108 - 10].
+The following values indicate the three types:
+
+	Value	Description
+	---------------------------------------------
+	0	None
+	1	Normalized RSSI
+	2	dBm
+	3 	Raw RSSI
+
+4.11 ssi_signal
+The ssi_signal field contains the signal strength value reported by
+the WLAN device for this frame.  Note that this is a signed quantity
+and if the ssi_type value is "dBm" that the value may be negative.
+
+4.12 ssi_noise
+The ssi_noise field contains the noise or "silence" value reported by
+the WLAN device.  This value is commonly defined to be the "signal
+strength reported immediately prior to the baseband processor lock on
+the frame preamble".  If the hardware does not provide noise data, this
+shall equal 0xffffffff.
+
+4.12 preamble
+For PHYs that support variable preamble lengths, the preamble field
+indicates the preamble type used for this frame.  The values are:
+
+	Value	Description
+	---------------------------------------------
+	0	Undefined
+	1	Short Preamble
+	2	Long Preamble
+
+4.13 encoding
+This specifies the encoding of the received packet.  For PHYs that support
+multiple encoding types, this will tell us which one was used.
+
+	Value	Description
+	---------------------------------------------
+	0	Unknown
+	1	CCK           
+	2	PBCC
+	3	OFDM
+	4	DSSS-OFDM
+	5       BPSK
+        6       QPSK
+        7       16QAM
+        8       64QAM
+
+4.14 sequence
+This is a receive frame sequence counter.  The sniff host shall 
+increment this by one for every valid frame received off the medium.
+By watching for gaps in the sequence numbers we can determine when 
+packets are lost due to unreliable transport, rather than a frame never 
+being received to begin with.
+
+4.15 drops
+This is a counter of the number of known frame drops that occured.  This 
+is particularly useful when the system or hardware cannot keep up with 
+the sniffer load.
+
+4.16 receiver_addr
+This specifies the MAC address of the receiver of this frame.  
+It is six octets in length.  This field is followed by two octets of 
+padding to keep the structure 32-bit word aligned.
+
+================================
+
+Changes: v2->v2.1
+
+ * Added contact e-mail address to introduction
+ * Added sniffer_addr, drop count, and sequence fields, bringing total 
+   length to 80 bytes
+ * Bumped version to 0x80211002
+ * Mactime is specified in microseconds, not nanoseconds
+ * Added 64QAM, 16QAM, BPSK, QPSK encodings
+
+================================
+
+Changes: v2.1->v2.1.1
+
+ * Renamed 'channel' to 'frequency'
+ * Clarified the interpretation of the frequency/channel field.
+ * Renamed 'sniffer address' to 'receiver address'
+ * Clarified timestamp fields.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base
new file mode 100644
index 0000000..d37c18b
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.debug.svn-base
@@ -0,0 +1,90 @@
+* doc/config.debug
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+The kernel components of linux-wlan currently have debugging code
+that can be enabled via a "make config" option.  If debug output
+has been compiled into a driver, enable it by setting the value of the 
+module parameter xxx_debug
+where xxx is the name of the component.  There are five levels of
+debugging (1-5).  Here's a summary of the levels and their usage:
+    1 - Enables most error messages for exception (but rare) conditions
+    2 - Enables more exceptions  
+    3 - Enables MAC status output
+    4 - More status
+    5 - Function entry and exit
+
+The levels are additive.  For example, level 3 includes level 3
+messages plus levels 1 and 2.
+
+To configure p80211.o for debug output, put the following line (with
+your own level number) in your modutils configuration file (usually
+/etc/conf.modules or /etc/modules.conf):
+ 
+  options p80211 wlan_debug=2
+
+To configure the prism2_cs driver for debug output, put the following
+line (with your own level number) in your /etc/pcmcia/config.opts
+file:
+
+  module "prism2_cs" opts "prism2_debug=2"
+
+To configure the PCI, PLX, or USB driver for debug output, put the following
+line (with your own level number) in your modutils configuration file (usually
+/etc/conf.modules or /etc/modules.conf):
+
+  options prism2_pci prism2_debug=3
+  options prism2_plx prism2_debug=3
+  options prism2_usb prism2_debug=3
+
+
+Then configure the collection and display of your kernel output.  This
+is usually done using syslog.  Here are the relevant entries from the
+/etc/syslog.conf file on one of our test machines:
+
+kern.*						/var/log/kernel
+kern.*						/dev/tty9
+*.info;mail.none;news.none;authpriv.none	/var/log/messages
+*.info;mail.none;news.none;authpriv.none	/dev/tty10
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base
new file mode 100644
index 0000000..c6ec9d8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/config.linux-wlan-ng.svn-base
@@ -0,0 +1,264 @@
+* doc/config.linux-wlan-ng
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+1. Summary
+
+This document describes a little more of the detail behind configuring the
+linux-wlan system.  
+
+2. Installed Componenents
+
+The linux-wlan-ng package consists of the following components:
+
+   p80211.o		Kernel module for 802.11 services
+   prism2sta_cs.o	Kernel module for the Prism2 PCMCIA device
+   			driver.
+   wlanctl-ng		User-mode utility for sending commands to
+   			802.11 services and MAC-specific drivers.
+   wland		User-mode daemon for receiving and handling
+   			events from 802.11 services and MAC-specific
+			drivers (not used in this version).
+   /etc/pcmcia/wlan-ng*	PCMCIA event and configuration scripts
+
+   *prism2dl		This utility is used for loading firmware
+   			images into prism2 cards.  DO NOT USE IT! 
+			UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING.  
+			This utility has the capability to damage a
+			card in a way that can only be repaired by the
+			manufacturer.
+
+When a 'make install' is performed, the modules are copied to the
+/usr/lib/modules/<kernelver>/net and /usr/lib/modules/pcmcia directory,
+the user-mode utilities are copied to /sbin, and the contents of
+linux-wlan-ng/etc/pcmcia are copied to the /etc/pcmcia directory.  If
+necessary, the pcmcia config files are altered to include a reference to
+the wlan-ng.conf file containing the information cardmgr uses to match
+card CIS information to specific device drivers at card insertion time.
+
+NOTE: It is very important that you restart your pcmcia services after
+installing linux-wlan-ng.  cardmgr will not recognize the information
+in the wlan-ng.conf file until after it has been restarted.
+
+	
+3. Configuration Variables
+
+To configure your installation for use, it will probably be necessary
+to edit the /etc/pcmcia/wlan-ng.opts file.  This file contains a
+collection of variable assignments that are used by the wlan-ng script
+to intialize your card at insertion time.  The variables are broken
+into groups: ENABLE, DOWNLOAD, USER MIB, WEP, STA, and AP START.
+
+Many of the choices involved in choosing configuration variable
+settings are dependent on whether you are setting up your system as a 
+Station (STA) or an Access Point (AP).  STA configuration is most
+common.  If you are using a mobile station that will connect to one or
+more APs, STA configuration is all you will need.
+
+3.1 ENABLE Group
+The only variable is this group is:
+
+WLAN_ENABLE=y
+	This variable determines whether the card will be intialized,
+	configured for operation, and your protocol stack configured.
+	Generally, you always want this set to 'y'.  For some cards,
+	you will set this variable to 'n' when performing card
+	maintenance like firmware upgrades.
+
+3.2 DOWNLOAD Group
+
+The DOWNLOAD group contains variables that indicate if code or data
+needs to be downloaded to the card prior to initialization and normal
+operation.  Currently, this is only required for the Prism2 card when
+running in AP mode.
+
+WLAN_DOWNLOAD=n
+	Set this variable to 'y' if code or data must be downloaded
+	into the card prior to operation.
+
+WLAN_DOWNLOADER=/sbin/prism2dl
+	This variable contains the name of the program used to
+	download the code into the card.
+
+WLAN_DLIMAGE=/etc/wlan/apfw.hex
+	This variable contains the name of the file you wish to
+	download.
+
+3.3 USER MIB Group
+
+There is only one variable in this group, USER_MIBS.  You may add your
+own local MIB item assignments assignments to this variable.  The
+wlan-ng script will loop through the assignments found in this
+variable and configure the card with each one prior to final
+configuration and enable.
+
+3.4 WEP Group
+
+The variables in the WEP group are used to configure the 802.11 "Wired
+Equivalent Privacy" element of the MAC if it is supported.  The driver
+is queried for WEP support prior to attempting WEP configuration.  If
+the driver states that WEP is NOT supported, these variables are
+ignored.  Note that you may need to set some of these variables even if 
+you are not using the privacy service.  If shared-key authentication
+is used, the WEP keys must be present.
+
+dot11PrivacyInvoked=false
+	Set this variable to "true" to enable the WEP support.
+
+lnxreq_hostWEPEncrypt=false
+lnxreq_hostWEPDecrypt=false 
+	Set these to true if you want WEP to be handled by the driver
+	instead of the hardware.  The only downside of this is that it
+	takes a bit of CPU time and you lose the ability to handle
+	fragmentation.   However, with prism2 cards, you should see a
+	performance boost, and with prism2.5 cards, this may avoid lockups.
+
+dot11WEPDefaultKeyID=1
+	This variable identifies which of the WEP keys is the default
+	key used for all transmits from this station.  In some
+	implementations, this can be changed (or rotated) later.
+
+dot11ExcludeUnencrypted=true
+	Setting this variable to "true" and dot11PrivacyInvoked to
+	true, has the effect of making WEP completely required for this 
+	station (or AP).  If set to "true", this STA will discard any
+	received frames that are not encrypted.
+
+PRIV_GENERATOR=/sbin/nwepgen
+	Some vendors include "WEP Key Generator" programs as part of
+	their windows or AP implementations.  This is purely a
+	convenience to prevent you from having to type in 40
+	hexadecimal digits.  It does not contribute to the secrity of
+	your system at all.  In some cases, we've included small
+	programs that generate keys in a manner compatible with the
+	vendor's method.  If you wish to use this capability, include
+	the name of the generator program here.
+
+PRIV_GENSTR="12345"
+	Every generator implementation we've seen so far uses some
+	kind of 'passphrase' to generate the keys.  This variable
+	contains the passphrase.  To disable the use of a generator,
+	leave this variable empty.
+
+dot11WEPDefaultKey0
+dot11WEPDefaultKey1
+dot11WEPDefaultKey2
+dot11WEPDefaultKey3
+	If you are configuring your keys by hand, you need to assign
+	these four variables.  The format is "xx:xx:xx:xx:xx" and the
+	order of the keys in these variables IS IMPORTANT.  Note: If
+	the PRIV_GENSTR variable is not empty, these variables are
+	ignored.
+
+3.5 STA Group
+
+Currently, there is only one variable in the STA group.  This will
+change over time.
+
+dot11DesiredSSID="WLAN_PRISM2"
+	This variable contains the SSID or "network name" of the
+	wireless network you wish to associate with.
+
+3.6 AP START Group
+
+If you have access to the necessary hardware and firmware, this driver
+can be used to set up a Access Point.  To configure for an access
+point, set the IS_AP variable to 'y'.  The following is a quick
+summary of the other AP configuration variables:
+
+
+APBRIDGEDEVICE=eth0
+	Defines the ethernet device that will be the 'other' port for
+	bridging 802.11 frames.
+APSSID="WLAN_PRISM2"
+	Defines the SSID that the AP will use when creating the network.
+APBCNINT=100
+	Defines the beacon interval (in Kus) that the AP will use.
+APDTIMINT=3
+	Defines the DTIM interval (in beacon intervals).
+
+APCFPOLLABLE|APCFPOLLREQ | Description
+---------------------------
+   false    |   false    | No point coordination by this AP
+   false    |   true     | AP will point coordinate for delivery only
+   true     |   false    | AP will point coordinate for deliver and polling
+   true     |   true     | Reserved
+
+APCFPPERIOD=3
+	Defines how often the contention free period occurrs (in
+	beacons).
+
+APCFPMAXDURATION=100
+	Defines the maximum length of the contention free period (in
+	Kus).
+
+APPROBEDELAY=100
+	Not used for infrastructure networks, any value is valid.
+
+APCHANNEL=6
+	Channel that the AP will create the network on.  Range of valid
+	values depends on you regulatory domain.  In the USA and Canada 
+	the range is 1-11.  In Japan the range is 1-14.
+
+
+APBASICRATES="2 4"
+	A whitespace separated list of data rates in units of 500Kb/s.
+	The basic rate set is the set of rates that stations MUST
+	support to be allowed to join the network.
+
+APOPRATES="2 4 11 22"
+	A whitespace separated list of data rates in units of 500Kb/s.
+	The operational rate set is the set of rates that are allowed
+	in the network.  It must be a superset of the basic rates
+	above.
+
+To complete the configuration of an Access Point, you will need to
+make sure you have kernel bridging enable in your currently running
+kernel and have the brcfg utility installed.  One version of the brcfg
+utility can be found at ftp://ftp.absoval.com
+
+To start the access point running, make sure the ethernet card is in the
+system first.  Then insert the WLAN card and everything should be
+configured automatically by the /etc/pcmcia/wlan-ng script.
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base
new file mode 100644
index 0000000..b66a571
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/releasepolicy.txt.svn-base
@@ -0,0 +1,37 @@
+linux-wlan Release Policy/Checklist
+--------------------------------------------------
+
+[MSM Note: Here's a _quick_ attempt at a release policy for linux-wlan.
+           It's very brief and relatively simple.  I'm open to suggestions
+           for improvement.
+]
+
+The following steps should be taken each time a new release of linux-wlan
+is ready for distribution:
+
+0) Make sure the current code builds, loads, associates, and ftps 
+   cleanly on all 3 AVS lab build boxes.
+1) Assign an W.X.Y-preZ version number.
+2) Update the version number in config.in.
+3) Tag the files.
+4) Build the tarball. (Bonehead! double check next time that the tarball
+   and config.in version number match, eh?)
+5) Release to ftp.
+6) Announce on linux-wlan-annouce as a feature frozen 'pre' release.
+7) Announce on freshmeat (Pavel? ;-)
+8) Allow at least 24 hours for bug reports and (hopefully) bugfix patches.
+9a) After 24 hour period, if bugfix patches and/or local fixes to bug 
+    reports are present, apply patches and GOTO step 0.
+9b) If no show-stopper bug-reports and/or patches are received during the
+    'pre' release period GOTO step 10.
+10) Make sure the current code builds, loads, associates, and ftps 
+    cleanly on all 3 AVS lab build boxes.
+11) Assign an W.X.Y version number.
+12) Update the version number in config.in.
+13) Tag the files.
+14) Build the tarball. (Bonehead! double check next time that the tarball
+    and config.in version number match, eh?)
+15) Release to ftp.
+16) Announce on linux-wlan-annouce as a final W.X.Y release.
+17) Announce on freshmeat.
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base
new file mode 100644
index 0000000..399a2e4
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/.svn/text-base/rh71notes.svn-base
@@ -0,0 +1,61 @@
+[MSM]: Here's an old e-mail.  I'm not sure if it's in the list archives
+so I figured I'd save it here.
+
+It may be useful for those using RH71.
+
+Date: Wed, 25 Apr 2001 16:03:20 +0800
+From: Leonard Ye <leonardye@yahoo.com>
+Reply-To: linux-wlan-user@absoval.com
+To: linux-wlan-user@absoval.com
+Subject: [lwlan-user]: REDHAT 7.1 + wlan-ng 0.1.18 HOWTO
+
+Hi all,
+
+Just get the wlan-ng 0.1.18pre11 working on my redhat 7.1 and I would like 
+to share the experiences with you.
+
+Assumption:
+         a default installation of redhat 7.1 with 
+kernel-pcmcia-cs-3.1.24-2.rpm installed
+
+Four steps as followings:
+
+1) Get kernel source ready
+install kernel-source-2.4.2-2 if you don't have the kernel source ready on 
+the machine
+copy a suitable configuration file from the configs directory to .config
+make dep
+
+2) Get pcmcia-cs header files ready
+download the pcmcia-cs-3.1.24.tar.gz package
+unzip it at appropriate place
+make config
+         when you were asked what kind of kernel configuration you want to 
+use, select "1"
+make all
+DON'T "make install"
+
+3) compile the wlan-ng-0.1.18pre11 code
+download the linux-wlan-ng-0.1.18pre11.tar.gz
+unzip it at appropriate place
+make config
+         select build-in kernel support
+make all
+make install
+
+4) some minor configuration
+edit /etc/pcmcia/config.opts to comment out the card definition for 
+"Intersil PRISM2 11 .."
+edit /etc/wlan-ng.opts
+         change string p2RoamingMode to p2CnfRoamingMode
+         set appropriate SSID for variable DesiredSSID
+create an ifcfg-wlan0 file in /etc/sysconfig/network-scripts
+
+Ok, your machine should be able to work as a STA using 
+wlan-ng-0.1.18pre11.  If you have experience with enabling AP mode, it 
+shouldn't be a problem for you enable it in redhat 7.1
+
+Regards,
+Leonard Ye
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile
new file mode 100644
index 0000000..9dfce56
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/Makefile
@@ -0,0 +1,56 @@
+# doc/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+all:
+	@echo "Nothing to do..."
+
+install:
+	@echo "Nothing to do..."
+
+clean:
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt
new file mode 100644
index 0000000..9ea908d
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/capturefrm.txt
@@ -0,0 +1,233 @@
+AVS Capture Frame Format
+Version 2.1.1
+
+1. Introduction
+The original header format for "monitor mode" or capturing frames was
+a considerable hack.  The document covers a redesign of that format.
+
+  Any questions, corrections, or proposed changes go to info@linux-wlan.com
+
+2. Frame Format
+All sniff frames follow the same format:
+
+	Offset	Name		Size		Description
+	--------------------------------------------------------------------
+	0	CaptureHeader			AVS capture metadata header
+	64	802.11Header	[10-30]		802.11 frame header
+	??	802.11Payload	[0-2312]	802.11 frame payload
+	??	802.11FCS	4		802.11 frame check sequence
+
+Note that the header and payload are variable length and the payload
+may be empty.
+
+If the hardware does not supply the FCS to the driver, then the frame shall
+have a FCS of 0xFFFFFFFF.
+
+3. Byte Order
+All multibyte fields of the capture header are in "network" byte
+order.  The "host to network" and "network to host" functions should
+work just fine.  All the remaining multibyte fields are ordered
+according to their respective standards.
+
+4. Capture Header Format
+The following fields make up the AVS capture header:
+
+	Offset	Name		Type
+	------------------------------
+	0	version		uint32
+	4	length		uint32
+	8	mactime		uint64
+	16	hosttime	uint64
+	24	phytype		uint32
+	28	frequency	uint32
+	32	datarate	uint32
+	36	antenna		uint32
+	40	priority	uint32
+	44	ssi_type	uint32
+	48	ssi_signal	int32
+	52	ssi_noise	int32
+	56	preamble	uint32
+	60	encoding	uint32
+	64	sequence	uint32
+	68      drops           uint32
+        72      receiver_addr   uint8[6]
+        78      padding         uint8[2]
+	------------------------------
+	80
+
+The following subsections detail the fields of the capture header.
+
+4.1 version
+The version field identifies this type of frame as a subtype of
+ETH_P_802111_CAPTURE as received by an ARPHRD_IEEE80211_PRISM or
+an ARPHRD_IEEE80211_CAPTURE device.  The value of this field shall be
+0x80211002.  As new revisions of this header are necessary, we can
+increment the version appropriately.
+
+4.2 length
+The length field contains the length of the entire AVS capture header,
+in bytes.
+
+4.3 mactime
+Many WLAN devices supply a relatively high resolution frame reception
+time value.  This field contains the value supplied by the device.  If
+the device does not supply a receive time value, this field shall be
+set to zero.  The units for this field are microseconds.  
+
+If possible, this time value should be absolute, representing the number
+of microseconds elapsed since the UNIX epoch.
+
+4.4 hosttime
+The hosttime field is set to the current value of the host maintained
+clock variable when the frame is received by the host. 
+
+If possible, this time value should be absolute, representing the number 
+of microseconds elapsed since the UNIX epoch.
+
+4.5 phytype
+The phytype field identifies what type of PHY is employed by the WLAN 
+device used to capture this frame.  The valid values are:
+
+	PhyType				Value
+	-------------------------------------
+	phytype_fhss_dot11_97		 1
+	phytype_dsss_dot11_97		 2
+	phytype_irbaseband		 3
+	phytype_dsss_dot11_b		 4
+	phytype_pbcc_dot11_b		 5
+	phytype_ofdm_dot11_g		 6
+	phytype_pbcc_dot11_g		 7
+	phytype_ofdm_dot11_a		 8
+	phytype_dss_ofdm_dot11_g	 9
+
+4.6 frequency
+
+This represents the frequency or channel number of the receiver at the 
+time the frame was received.  It is interpreted as follows:
+
+For frequency hopping radios, this field is broken in to the 
+following subfields:
+
+	Byte	Subfield
+	------------------------
+	Byte0	Hop Set
+	Byte1	Hop Pattern
+	Byte2	Hop Index
+	Byte3	reserved
+
+For non-hopping radios, the frequency is interpreted as follows:
+
+       Value                Meaning
+    -----------------------------------------
+       < 256	       Channel number (using externally-defined
+                         channelization)
+       < 10000         Center frequency, in MHz
+      >= 10000         Center frequency, in KHz
+
+4.7 datarate
+The data rate field contains the rate at which the frame was received
+in units of 100kbps.
+
+4.8 antenna
+For WLAN devices that indicate the receive antenna for each frame, the
+antenna field shall contain an index value into the dot11AntennaList.
+If the device does not indicate a receive antenna value, this field
+shall be set to zero.
+
+4.9 priority
+The priority field indicates the receive priority of the frame.  The
+value is in the range [0-15] with the value 0 reserved to indicate
+contention period and the value 6 reserved to indicate contention free
+period.
+
+4.10 ssi_type
+The ssi_type field is used to indicate what type of signal strength
+information is present: "None", "Normalized RSSI" or "dBm".  "None"
+indicates that the underlying WLAN device does not supply any signal
+strength at all and the ssi_* values are unset.  "Normalized RSSI"
+values are integers in the range [0-1000] where higher numbers
+indicate stronger signal.  "dBm" values indicate an actual signal 
+strength measurement quantity and are usually in the range [-108 - 10].
+The following values indicate the three types:
+
+	Value	Description
+	---------------------------------------------
+	0	None
+	1	Normalized RSSI
+	2	dBm
+	3 	Raw RSSI
+
+4.11 ssi_signal
+The ssi_signal field contains the signal strength value reported by
+the WLAN device for this frame.  Note that this is a signed quantity
+and if the ssi_type value is "dBm" that the value may be negative.
+
+4.12 ssi_noise
+The ssi_noise field contains the noise or "silence" value reported by
+the WLAN device.  This value is commonly defined to be the "signal
+strength reported immediately prior to the baseband processor lock on
+the frame preamble".  If the hardware does not provide noise data, this
+shall equal 0xffffffff.
+
+4.12 preamble
+For PHYs that support variable preamble lengths, the preamble field
+indicates the preamble type used for this frame.  The values are:
+
+	Value	Description
+	---------------------------------------------
+	0	Undefined
+	1	Short Preamble
+	2	Long Preamble
+
+4.13 encoding
+This specifies the encoding of the received packet.  For PHYs that support
+multiple encoding types, this will tell us which one was used.
+
+	Value	Description
+	---------------------------------------------
+	0	Unknown
+	1	CCK           
+	2	PBCC
+	3	OFDM
+	4	DSSS-OFDM
+	5       BPSK
+        6       QPSK
+        7       16QAM
+        8       64QAM
+
+4.14 sequence
+This is a receive frame sequence counter.  The sniff host shall 
+increment this by one for every valid frame received off the medium.
+By watching for gaps in the sequence numbers we can determine when 
+packets are lost due to unreliable transport, rather than a frame never 
+being received to begin with.
+
+4.15 drops
+This is a counter of the number of known frame drops that occured.  This 
+is particularly useful when the system or hardware cannot keep up with 
+the sniffer load.
+
+4.16 receiver_addr
+This specifies the MAC address of the receiver of this frame.  
+It is six octets in length.  This field is followed by two octets of 
+padding to keep the structure 32-bit word aligned.
+
+================================
+
+Changes: v2->v2.1
+
+ * Added contact e-mail address to introduction
+ * Added sniffer_addr, drop count, and sequence fields, bringing total 
+   length to 80 bytes
+ * Bumped version to 0x80211002
+ * Mactime is specified in microseconds, not nanoseconds
+ * Added 64QAM, 16QAM, BPSK, QPSK encodings
+
+================================
+
+Changes: v2.1->v2.1.1
+
+ * Renamed 'channel' to 'frequency'
+ * Clarified the interpretation of the frequency/channel field.
+ * Renamed 'sniffer address' to 'receiver address'
+ * Clarified timestamp fields.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries
new file mode 100644
index 0000000..314e9ad
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/entries
@@ -0,0 +1,198 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/codingstd
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2000-07-05T04:57:04.000000Z
+510
+joellen
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+format.srcfile.c
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+4d03db773eb74f475d0c8f2d94c06449
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3191
+
+format.srcfile.html
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+b2e1c5b9966be041916882c0e484c7ea
+2000-02-07T17:21:13.000000Z
+288
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8378
+
+linux.CodingStyle
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+81f0b3e9b95008a87d2170a9e26c0dac
+2000-02-07T17:21:13.000000Z
+288
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8508
+
+format.hfile
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+0cad166bc14897b002f513cb888e2928
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4416
+
+format.srcfile
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+52a444d4129f9399d48da458765ad661
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4591
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.hfile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.c.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.html.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/format.srcfile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/prop-base/linux.CodingStyle.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base
new file mode 100644
index 0000000..71d4a5f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.hfile.svn-base
@@ -0,0 +1,142 @@
+/* aheader.h: [one line description of the file]
+*    --------------------------------------------------------------------
+*
+*   [Project Name]
+*
+*   [License Statement, eg.
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.0 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/ ]
+*
+*   [Warranty Statement, eg.
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License. ]
+*
+*   [Author contact, eg.
+*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved.
+*
+*   Inquiries regarding the linux-wlan Open Source project can be
+*   made directly to:
+*
+*   AbsoluteValue Systems Inc.
+*   info@linux-wlan.com
+*   http://www.linux-wlan.com ]
+*
+*   [Change History]
+*
+*   [Verbose Description]
+*
+*   [Implementation and usage notes]
+*
+*   [References]
+*
+*    --------------------------------------------------------------------
+*/
+
+#ifndef _AHEADER_H
+#define _AHEADER_H
+
+/*=============================================================*/
+/*------ Constants --------------------------------------------*/
+
+/*--- Fixed memory offsets --------------------------*/
+#define SU_OFF_LAST_TXDESC        0x3ec
+#define SU_OFF_RSVD1              0x400
+#define SU_OFF_BANNER             0x480
+#define SU_OFF_CMD_BLK            0x4a0
+#define SU_OFF_CNTL_STATUS_BLK    0x4f0
+#define SU_OFF_VBM                0x500
+#define SU_OFF_BUFFER             0x600
+
+/*--- Global Sizes ----------------------------------*/
+#define SU_LEN_BANNER             32
+
+
+
+/*=============================================================*/
+/*------ Macros -----------------------------------------------*/
+
+/*--- next testing macro (applies to Rx and Tx) -------*/
+#define SUTXD_ISLAST(x)            ((x) & BIT31)
+#define SURXD_ISLAST(x)            ((x) & BIT31)
+
+
+/*=============================================================*/
+/*------ Types and their related constants --------------------*/
+
+/*--- Last Completed Tx Descriptor Block ---------------*/
+__WLAN_PRAGMA_PACK1__
+typedef struct am930txcmplt_blk
+{
+    volatile UINT32    last_bcast    __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_mgmt     __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_data     __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_pspoll   __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_cfpoll   __WLAN_ATTRIB_PACK__;
+} am930txcmplt_blk_t;
+__WLAN_PRAGMA_PACKDFLT__
+
+#define TXCMPLT_OFF_BCAST     0
+#define TXCMPLT_OFF_MGMT      4
+#define TXCMPLT_OFF_DATA      8
+#define TXCMPLT_OFF_PSPOLL    12
+#define TXCMPLT_OFF_CFPOLL    16      
+
+typedef void (*am930hw_scan_callback_t)(void *);
+
+/*=============================================================*/
+/*--- Function Declarations -----------------------------------*/
+/*=============================================================*/
+/* public: */
+am930hw_t*    
+am930hw_construct(UINT32 irq, UINT32 iobase,
+                  UINT32 membase, am930mac_t *mac);
+
+void        
+am930hw_destruct(am930hw_t *hw);
+
+int
+am930hw_init_rx_tx( am930hw_t *hw );
+
+void
+am930hw_ISR( am930hw_t *hw );
+
+UINT32
+am930hw_joinbss( am930hw_t *hw, UINT32 ch, UINT32 newBSS, 
+                 UINT8 *bssid, wlan_ie_ssid_t *ssid, UINT32 bcn_int,
+                 wlan_bss_ts_t ts, UINT32 sutro_ref_time );
+
+UINT32
+am930hw_scan( am930hw_t *hw, UINT32 cntl, UINT8 *bssid, 
+              UINT32 ch, UINT32 duration,
+              am930hw_scan_callback_t cb, void *callback_arg );
+
+UINT32
+am930hw_reset( am930hw_t *hw );
+
+/*=============================================================*/
+/*--- Inline Function Definitions (if supported) --------------*/
+/*=============================================================*/
+
+/*----------------------------------------------------------------
+*	am930hw_reset
+*
+*   Perform reset of am930 part and test for valid operation
+*   operation following reset.
+*
+*	returns: zero on success, non-zero if part fails to come up
+*            after reset.
+----------------------------------------------------------------*/
+__INLINE__ UINT32 am930hw_reset( am930hw_t* hw)
+{
+	UINT32   result = 0;
+
+	/* perform reset */
+	/* test part */
+	return result;
+}
+
+#endif /* _AHEADER_H */
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base
new file mode 100644
index 0000000..fdbb997
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.c.svn-base
@@ -0,0 +1,113 @@
+/* [filename]: [one line description of the file]
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes] 
+*
+* --------------------------------------------------------------------
+*/
+
+/*================================================================*/
+/* System Includes */
+
+
+/*================================================================*/
+/* Project Includes */
+
+
+/*================================================================*/
+/* Local Constants */
+
+
+/*================================================================*/
+/* Local Macros */
+
+
+/*================================================================*/
+/* Local Types */
+
+
+/*================================================================*/
+/* Local Static Definitions */
+
+/*----------------------------------------------------------------*/
+/* --A subsection */
+
+
+/*================================================================*/
+/* Local Function Declarations */
+
+
+/*----------------------------------------------------------------
+* [function name]
+*
+* [Description]
+*
+* Arguments:
+*	[arglist]
+*
+* Returns: 
+*	[retlist]
+*
+* Side effects:
+*	[desc]
+*
+* Call context:
+*	[desc]
+----------------------------------------------------------------*/
+int afunction(void)
+{
+        DBFENTER;
+
+        if ( a ) {
+                prinf("xxx");
+        }
+
+
+        DBFEXIT;
+        return 0;
+}
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base
new file mode 100644
index 0000000..c2ba914
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.html.svn-base
@@ -0,0 +1,311 @@
+<HTML>
+<HEAD>
+    <TITLE>AVS C Source file format</TITLE>
+</HEAD>
+<BODY>
+<H1>1. C Source file format</H1>
+<P>
+The following defines the common C source file format for linux-wlan.
+Most of the C-code formatting rules come from the linux kernel
+document <CODE>CodingStyle</CODE>.
+
+<H1>2. Characters and Code layout</H1>
+<H2>2.1. Character Set</H2>
+<P>
+For all source files, we'll stick to the US character set and avoid all 
+trigraphs.
+
+<H2>2.2. Indentation</H2>
+<P>
+All indentation will be done using tab characters which are mapped to a 
+spacing of eight characters.
+
+<H2>2.3. Braces</H2>
+<P>
+Braces will be placed according to the format originally established
+in Kernighan and Ritchie's book "The C Programming Language".  Here
+are some example statements:
+<P>
+<TABLE border=1><TR><TD><PRE>
+
+for ( i= 0; i &lt; N; i++) {
+   .
+   .
+   .
+}
+
+if ( a &lt; b ) {
+   .
+   .
+   .
+} else {
+   .
+   .
+   .
+}
+
+do {
+   .
+   .
+   .
+} while ( i &gt> 0 );
+</PRE></TABLE>
+
+
+
+<H1>3. Naming and Definition Conventions</H1>
+
+<H2>3.1. Preprocessor Elements</H2>
+<P>
+All elements defined via the C preprocessor (constants and macros) are
+named using all capital letters.  An exception is for macros that are
+either wrapping function calls for portability or for macros that are
+inline replacements for code that would normally be in a function.
+
+<H2>3.2. Types</H2>
+<P>
+All programmer defined types must have single word type names
+defined using the <PRE>typedef</PRE> statement.  All type names
+should be identified with an <PRE>_t</PRE> suffix.  This is
+particularly important for function pointers that are members of
+structures or arguments to functions.
+
+<P>
+Anonymous types are not allowed.  All struct, union, and enum
+types shall be named and typedef'd.
+
+
+<H2>3.3. Variables</H2>
+The following conventions should be followed for variable
+declaration and naming:
+	<UL>
+		<LI>Variables should be named using meaningful names.
+		<LI>Avoid variables with static lifetimes.
+		<LI>If static lifetime variables must be used, use file
+		scoped static variables and avoid static lifetime
+		variables with visibility beyond file scope. 
+		<LI>All static lifetime variables should be declared in
+		the "Local Statics" section near the top of a given
+		source file.
+	</UL>
+
+<H2>3.4. Functions</H2>
+The following conventions should be followed for function
+declaration and definition:
+	<UL>
+		<LI><B>All</B> functions must be declared above the point
+		where they are called.
+		<LI>Any functions that are only intended to be called
+		within a given source file should be declared static
+		within that file.
+		<LI>Functions defined within a common source file that are 
+		visible across source file boundaries should be named
+		using a prefix that is unique to that source file.
+	</UL>
+
+<H1>4. File Layout</H1>
+<P> 
+Each file should be layed out using a common format.  The
+following shows a complete file with all its major sections.
+
+<P>
+Each major section within the file is begun with a comment of the
+form:
+<PRE>
+/*================================================================*/
+/* [Section Name] */
+</PRE>
+
+<P>
+Subsections within a major section are denoted using:
+<PRE>
+/*----------------------------------------------------------------*/
+/*  [Subsection Name]  */
+</PRE>
+
+<P>
+<TABLE border=1><TR><TD>
+<PRE>
+/* [filename]: [one line description of the file]
+* --------------------------------------------------------------------
+*
+* [Project Name]
+*
+* [License Statement]
+*
+* [Warranty Statement]
+*
+* [Initial Author Statement]
+*   
+* --------------------------------------------------------------------
+*
+* [Initial Author Contact]
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes]
+*
+* --------------------------------------------------------------------
+*/
+
+/*================================================================*/
+/* System Includes */
+
+
+/*================================================================*/
+/* Project Includes */
+
+
+/*================================================================*/
+/* Local Constants */
+
+
+/*================================================================*/
+/* Local Macros */
+
+/*----------------------------------------------------------------*/
+/*  [A subsection]  */
+
+/*================================================================*/
+/* Local Types */
+
+
+/*================================================================*/
+/* Local Static Definitions */
+
+
+/*================================================================*/
+/* Local Function Declarations */
+
+
+/*================================================================*/
+/* Function Definitions */
+
+</PRE>
+</TABLE>
+
+<H2>4.1. System  Includes Section</H2>
+<P>
+Preprocessor <CODE>#include</CODE> statements that are including
+<I>system</I> includes shall be placed in this section.  System
+includes are those include files that are <B>not</B> part of the
+managed source for this project.
+
+<H2>4.2. Project Includes Section</H2>
+<P>
+Preprocessor <CODE>#include</CODE> statements that are including
+<I>project</I> includes shall be placed in this section.  Project 
+includes are those include files that are a part of the
+managed source for this project.
+
+<H2>4.3. Local Constants Section</H2>
+<P>
+Preprocessor "manifest" constants that are local to this file shall be
+placed in this section.  "Manifest" constants are preprocessor macros
+that take no arguments.
+
+<H2>4.4. Local Macros Section</H2>
+<P>
+Proprocessor macros that accept arguments shall be placed in this
+section.
+
+<H2>4.5. Local Types Section</H2>
+<P>
+Programmer defined types that are only used within the scope of this
+file shall be defined in this section.  Programmer defined types that
+are used in more than one source file should be defined in a header
+file.
+
+<H2>4.6. Local Static Definitions Section</H2>
+<P>
+Variables with static extent that are defined within this file shall
+be placed in this section.  Whether a variable has scope beyond this
+file will be apparent based on the presence or absence of the
+<CODE>static</CODE> keyword in the declaration.  If a variable is
+declared without the <CODE>static</CODE> keyword, there should be an
+<CODE>extern</CODE> declaration for that variable in a header file.
+
+<H2>4.6. Local Function Declarations Section</H2>
+<P>
+Functions that are only used within this file should be declared
+(prototyped) in this section.  Additionally, these functions should be
+declared using the <CODE>static</CODE> keyword.  This avoids polluting
+the global namespace with function names that need not be
+<CODE>extern</CODE>.
+
+<P>
+Any functions defined in this file that <I>are</I> called from outside
+this file should be declared (prototyped) in a header file.
+
+<H2>4.6. Function Definitions Section</H2>
+<P>
+This section contains the definitions of the functions in this file.
+Each function (or group of strongly related functions) will be
+preceded by a function header comment (see below).
+
+<H1>5. Comments</H1>
+<H2>5.1. File Header</H2>
+<P>
+Each source file will have a header comment containing information
+about the file as a whole.  That comment shall be formatted:
+<P>
+<TABLE border=1><TR><TD><PRE>
+/* [filename]: [one line description of the file]
+* --------------------------------------------------------------------
+*
+* [Project Name]
+*
+* [License Statement]
+*
+* [Warranty Statement]
+*
+* [Initial Author Statement]
+*   
+* --------------------------------------------------------------------
+*
+* [Initial Author Contact]
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes]
+*
+* --------------------------------------------------------------------
+*/
+</PRE>
+</TABLE>
+
+<H2>5.2. Function Header</H2>
+<P>
+Each function (or group of closely related functions) will be preceded 
+by a function comment header.  The <CODE>Side effects</CODE> and
+<CODE>Call context</CODE> sections are optional.
+<P>
+<TABLE border=1><TR><TD><PRE>
+/*----------------------------------------------------------------
+* [function name]
+*
+* [description]
+*
+* Arguments:
+*	[argument list]
+*
+* Returns: 
+*	[return value list]
+*
+* Side effects:
+*	[description of function side effects]
+*
+* Call context:
+*	[description of calling context]
+----------------------------------------------------------------*/
+</PRE>
+</TABLE>
+
+
+</BODY>
+</HTML>
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base
new file mode 100644
index 0000000..3c4b4c1
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/format.srcfile.svn-base
@@ -0,0 +1,138 @@
+<TABLE border=1>
+<TR><TD><PRE>
+/* asource.c: [one line description of file]
+*    --------------------------------------------------------------------
+*
+*   [Project Name]
+*
+*   [License Statement, eg.
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.0 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/ ]
+*
+*   [Warranty Statement, eg.
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License. ]
+*
+*   [Author contact, eg.
+*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved.
+*
+*   Inquiries regarding the linux-wlan Open Source project can be
+*   made directly to:
+*
+*   AbsoluteValue Systems Inc.
+*   info@linux-wlan.com
+*   http://www.linux-wlan.com ]
+*
+*   [Change History]
+*
+*   [Verbose Description]
+*
+*   [Implementation and usage notes]
+*
+*   [References]
+*
+*    --------------------------------------------------------------------
+*/
+
+/* Portability/Compatibility header */
+#include &lt;wlan/wlan_compat.h&gt;
+
+/* The following prevents &quot;kernel_version&quot; from being set in this file. */
+#define __NO_VERSION__
+
+/* Non-project specific includes */
+/* PCMCIA headers generated during PCMCIA package installation */
+#include &lt;pcmcia/config.h&gt;
+#include &lt;pcmcia/k_compat.h&gt;
+
+/* Module related headers, non-module drivers should not include */
+#include &lt;linux/version.h&gt;
+
+#include &lt;assert.h&gt;
+#include &lt;linux/delay.h&gt;
+#include &lt;linux/kernel.h&gt;
+#include &lt;linux/types.h&gt;
+#include &lt;linux/fcntl.h&gt;
+#include &lt;linux/interrupt.h&gt;
+#include &lt;linux/ptrace.h&gt;
+#include &lt;linux/ioport.h&gt;
+#include &lt;linux/in.h&gt;
+#include &lt;linux/malloc.h&gt;
+#include &lt;linux/string.h&gt;
+#include &lt;linux/timer.h&gt;
+#include &lt;asm/system.h&gt;
+#include &lt;asm/bitops.h&gt;
+#include &lt;asm/io.h&gt;
+#include &lt;linux/errno.h&gt;
+
+/* Project Includes */
+#include &lt;wlan/version.h&gt;
+#include &lt;wlan/am930mib.h&gt;
+#include &lt;wlan/p80211hdr.h&gt;
+#include &lt;wlan/p80211mgmt.h&gt;
+#include &lt;wlan/wlan_ioctl.h&gt;
+#include &lt;wlan/wlan_stable.h&gt;
+#include &quot;am930di.h&quot;
+#include &quot;am930llc.h&quot;
+#include &quot;am930mac.h&quot;
+#include &quot;am930hw.h&quot;
+#include &quot;am930mgr.h&quot;
+
+/*====================================================================*/
+/* Local Constants                                                    */
+/*====================================================================*/
+
+#define ACONSTANT    22
+
+
+/*====================================================================*/
+/* Local Types                                                        */
+/*====================================================================*/
+
+typdef struct atype
+{
+    struct atype *next;
+    struct atype *prev;
+} atype_t;
+
+
+/*====================================================================*/
+/* Static data defined in this file                                   */
+/*====================================================================*/
+
+UINT8    wepkey[WLAN_WEP_NKEYS][WLAN_WEP_KEYLEN] =
+{
+    { 0xf1, 0x10, 0xec, 0xe0, 0xdc },
+    { 0x0f, 0xf2, 0x04, 0x09, 0xfb },
+    { 0x13, 0x37, 0xf2, 0xf9, 0x2d },
+    { 0xe9, 0x17, 0x19, 0x63, 0xc7 }
+};
+
+
+/*====================================================================*/
+/* Local Function Declarations                                        */
+/*====================================================================*/
+
+static void am930mgr_authen1_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen2_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen3_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen4_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+
+/*====================================================================*/
+/* Function Definitions                                               */
+/*====================================================================*/
+
+
+/*----------------------------------------------------------------
+*    am930mgr_assoc_begin_sta
+*
+*    Start the station association procedure.  Namely, send an
+*    association request frame to the AP.
+*
+*    returns: nothing for now
+----------------------------------------------------------------*/
+void am930mgr_assoc_begin_sta(am930mgr_t *mgr)
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base
new file mode 100644
index 0000000..edba246
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/.svn/text-base/linux.CodingStyle.svn-base
@@ -0,0 +1,212 @@
+
+		Linux kernel coding style 
+
+This is a short document describing the preferred coding style for the
+linux kernel.  Coding style is very personal, and I won't _force_ my
+views on anybody, but this is what goes for anything that I have to be
+able to maintain, and I'd prefer it for most other things too.  Please
+at least consider the points made here. 
+
+First off, I'd suggest printing out a copy of the GNU coding standards,
+and NOT read it.  Burn them, it's a great symbolic gesture. 
+
+Anyway, here goes:
+
+
+	 	Chapter 1: Indentation
+
+Tabs are 8 characters, and thus indentations are also 8 characters. 
+There are heretic movements that try to make indentations 4 (or even 2!)
+characters deep, and that is akin to trying to define the value of PI to
+be 3. 
+
+Rationale: The whole idea behind indentation is to clearly define where
+a block of control starts and ends.  Especially when you've been looking
+at your screen for 20 straight hours, you'll find it a lot easier to see
+how the indentation works if you have large indentations. 
+
+Now, some people will claim that having 8-character indentations makes
+the code move too far to the right, and makes it hard to read on a
+80-character terminal screen.  The answer to that is that if you need
+more than 3 levels of indentation, you're screwed anyway, and should fix
+your program. 
+
+In short, 8-char indents make things easier to read, and have the added
+benefit of warning you when you're nesting your functions too deep. 
+Heed that warning. 
+
+
+		Chapter 2: Placing Braces
+
+The other issue that always comes up in C styling is the placement of
+braces.  Unlike the indent size, there are few technical reasons to
+choose one placement strategy over the other, but the preferred way, as
+shown to us by the prophets Kernighan and Ritchie, is to put the opening
+brace last on the line, and put the closing brace first, thusly:
+
+	if (x is true) {
+		we do y
+	}
+
+However, there is one special case, namely functions: they have the
+opening brace at the beginning of the next line, thus:
+
+	int function(int x)
+	{
+		body of function
+	}
+
+Heretic people all over the world have claimed that this inconsistency
+is ...  well ...  inconsistent, but all right-thinking people know that
+(a) K&R are _right_ and (b) K&R are right.  Besides, functions are
+special anyway (you can't nest them in C). 
+
+Note that the closing brace is empty on a line of its own, _except_ in
+the cases where it is followed by a continuation of the same statement,
+ie a "while" in a do-statement or an "else" in an if-statement, like
+this:
+
+	do {
+		body of do-loop
+	} while (condition);
+
+and
+
+	if (x == y) {
+		..
+	} else if (x > y) {
+		...
+	} else {
+		....
+	}
+			
+Rationale: K&R. 
+
+Also, note that this brace-placement also minimizes the number of empty
+(or almost empty) lines, without any loss of readability.  Thus, as the
+supply of new-lines on your screen is not a renewable resource (think
+25-line terminal screens here), you have more empty lines to put
+comments on. 
+
+
+		Chapter 3: Naming
+
+C is a Spartan language, and so should your naming be.  Unlike Modula-2
+and Pascal programmers, C programmers do not use cute names like
+ThisVariableIsATemporaryCounter.  A C programmer would call that
+variable "tmp", which is much easier to write, and not the least more
+difficult to understand. 
+
+HOWEVER, while mixed-case names are frowned upon, descriptive names for
+global variables are a must.  To call a global function "foo" is a
+shooting offense. 
+
+GLOBAL variables (to be used only if you _really_ need them) need to
+have descriptive names, as do global functions.  If you have a function
+that counts the number of active users, you should call that
+"count_active_users()" or similar, you should _not_ call it "cntusr()". 
+
+Encoding the type of a function into the name (so-called Hungarian
+notation) is brain damaged - the compiler knows the types anyway and can
+check those, and it only confuses the programmer.  No wonder MicroSoft
+makes buggy programs. 
+
+LOCAL variable names should be short, and to the point.  If you have
+some random integer loop counter, it should probably be called "i". 
+Calling it "loop_counter" is non-productive, if there is no chance of it
+being mis-understood.  Similarly, "tmp" can be just about any type of
+variable that is used to hold a temporary value. 
+
+If you are afraid to mix up your local variable names, you have another
+problem, which is called the function-growth-hormone-imbalance syndrome. 
+See next chapter. 
+
+		
+		Chapter 4: Functions
+
+Functions should be short and sweet, and do just one thing.  They should
+fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24,
+as we all know), and do one thing and do that well. 
+
+The maximum length of a function is inversely proportional to the
+complexity and indentation level of that function.  So, if you have a
+conceptually simple function that is just one long (but simple)
+case-statement, where you have to do lots of small things for a lot of
+different cases, it's OK to have a longer function. 
+
+However, if you have a complex function, and you suspect that a
+less-than-gifted first-year high-school student might not even
+understand what the function is all about, you should adhere to the
+maximum limits all the more closely.  Use helper functions with
+descriptive names (you can ask the compiler to in-line them if you think
+it's performance-critical, and it will probably do a better job of it
+that you would have done). 
+
+Another measure of the function is the number of local variables.  They
+shouldn't exceed 5-10, or you're doing something wrong.  Re-think the
+function, and split it into smaller pieces.  A human brain can
+generally easily keep track of about 7 different things, anything more
+and it gets confused.  You know you're brilliant, but maybe you'd like
+to understand what you did 2 weeks from now. 
+
+
+		Chapter 5: Commenting
+
+Comments are good, but there is also a danger of over-commenting.  NEVER
+try to explain HOW your code works in a comment: it's much better to
+write the code so that the _working_ is obvious, and it's a waste of
+time to explain badly written code. 
+
+Generally, you want your comments to tell WHAT your code does, not HOW. 
+Also, try to avoid putting comments inside a function body: if the
+function is so complex that you need to separately comment parts of it,
+you should probably go back to chapter 4 for a while.  You can make
+small comments to note or warn about something particularly clever (or
+ugly), but try to avoid excess.  Instead, put the comments at the head
+of the function, telling people what it does, and possibly WHY it does
+it. 
+
+
+		Chapter 6: You've made a mess of it
+
+That's OK, we all do.  You've probably been told by your long-time Unix
+user helper that "GNU emacs" automatically formats the C sources for
+you, and you've noticed that yes, it does do that, but the defaults it
+uses are less than desirable (in fact, they are worse than random
+typing - a infinite number of monkeys typing into GNU emacs would never
+make a good program). 
+
+So, you can either get rid of GNU emacs, or change it to use saner
+values.  To do the latter, you can stick the following in your .emacs file:
+
+(defun linux-c-mode ()
+  "C mode with adjusted defaults for use with the Linux kernel."
+  (interactive)
+  (c-mode)
+  (c-set-style "K&R")
+  (setq c-basic-offset 8))
+
+This will define the M-x linux-c-mode command.  When hacking on a
+module, if you put the string -*- linux-c -*- somewhere on the first
+two lines, this mode will be automatically invoked. Also, you may want
+to add
+
+(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode)
+                       auto-mode-alist))
+
+to your .emacs file if you want to have linux-c-mode switched on
+automagically when you edit source files under /usr/src/linux.
+
+But even if you fail in getting emacs to do sane formatting, not
+everything is lost: use "indent".
+
+Now, again, GNU indent has the same brain dead settings that GNU emacs
+has, which is why you need to give it a few command line options. 
+However, that's not too bad, because even the makers of GNU indent
+recognize the authority of K&R (the GNU people aren't evil, they are
+just severely misguided in this matter), so you just give indent the
+options "-kr -i8" (stands for "K&R, 8 character indents"). 
+
+"indent" has a lot of options, and especially when it comes to comment
+re-formatting you may want to take a look at the manual page.  But
+remember: "indent" is not a fix for bad programming. 
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile
new file mode 100644
index 0000000..71d4a5f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.hfile
@@ -0,0 +1,142 @@
+/* aheader.h: [one line description of the file]
+*    --------------------------------------------------------------------
+*
+*   [Project Name]
+*
+*   [License Statement, eg.
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.0 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/ ]
+*
+*   [Warranty Statement, eg.
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License. ]
+*
+*   [Author contact, eg.
+*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved.
+*
+*   Inquiries regarding the linux-wlan Open Source project can be
+*   made directly to:
+*
+*   AbsoluteValue Systems Inc.
+*   info@linux-wlan.com
+*   http://www.linux-wlan.com ]
+*
+*   [Change History]
+*
+*   [Verbose Description]
+*
+*   [Implementation and usage notes]
+*
+*   [References]
+*
+*    --------------------------------------------------------------------
+*/
+
+#ifndef _AHEADER_H
+#define _AHEADER_H
+
+/*=============================================================*/
+/*------ Constants --------------------------------------------*/
+
+/*--- Fixed memory offsets --------------------------*/
+#define SU_OFF_LAST_TXDESC        0x3ec
+#define SU_OFF_RSVD1              0x400
+#define SU_OFF_BANNER             0x480
+#define SU_OFF_CMD_BLK            0x4a0
+#define SU_OFF_CNTL_STATUS_BLK    0x4f0
+#define SU_OFF_VBM                0x500
+#define SU_OFF_BUFFER             0x600
+
+/*--- Global Sizes ----------------------------------*/
+#define SU_LEN_BANNER             32
+
+
+
+/*=============================================================*/
+/*------ Macros -----------------------------------------------*/
+
+/*--- next testing macro (applies to Rx and Tx) -------*/
+#define SUTXD_ISLAST(x)            ((x) & BIT31)
+#define SURXD_ISLAST(x)            ((x) & BIT31)
+
+
+/*=============================================================*/
+/*------ Types and their related constants --------------------*/
+
+/*--- Last Completed Tx Descriptor Block ---------------*/
+__WLAN_PRAGMA_PACK1__
+typedef struct am930txcmplt_blk
+{
+    volatile UINT32    last_bcast    __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_mgmt     __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_data     __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_pspoll   __WLAN_ATTRIB_PACK__;
+    volatile UINT32    last_cfpoll   __WLAN_ATTRIB_PACK__;
+} am930txcmplt_blk_t;
+__WLAN_PRAGMA_PACKDFLT__
+
+#define TXCMPLT_OFF_BCAST     0
+#define TXCMPLT_OFF_MGMT      4
+#define TXCMPLT_OFF_DATA      8
+#define TXCMPLT_OFF_PSPOLL    12
+#define TXCMPLT_OFF_CFPOLL    16      
+
+typedef void (*am930hw_scan_callback_t)(void *);
+
+/*=============================================================*/
+/*--- Function Declarations -----------------------------------*/
+/*=============================================================*/
+/* public: */
+am930hw_t*    
+am930hw_construct(UINT32 irq, UINT32 iobase,
+                  UINT32 membase, am930mac_t *mac);
+
+void        
+am930hw_destruct(am930hw_t *hw);
+
+int
+am930hw_init_rx_tx( am930hw_t *hw );
+
+void
+am930hw_ISR( am930hw_t *hw );
+
+UINT32
+am930hw_joinbss( am930hw_t *hw, UINT32 ch, UINT32 newBSS, 
+                 UINT8 *bssid, wlan_ie_ssid_t *ssid, UINT32 bcn_int,
+                 wlan_bss_ts_t ts, UINT32 sutro_ref_time );
+
+UINT32
+am930hw_scan( am930hw_t *hw, UINT32 cntl, UINT8 *bssid, 
+              UINT32 ch, UINT32 duration,
+              am930hw_scan_callback_t cb, void *callback_arg );
+
+UINT32
+am930hw_reset( am930hw_t *hw );
+
+/*=============================================================*/
+/*--- Inline Function Definitions (if supported) --------------*/
+/*=============================================================*/
+
+/*----------------------------------------------------------------
+*	am930hw_reset
+*
+*   Perform reset of am930 part and test for valid operation
+*   operation following reset.
+*
+*	returns: zero on success, non-zero if part fails to come up
+*            after reset.
+----------------------------------------------------------------*/
+__INLINE__ UINT32 am930hw_reset( am930hw_t* hw)
+{
+	UINT32   result = 0;
+
+	/* perform reset */
+	/* test part */
+	return result;
+}
+
+#endif /* _AHEADER_H */
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile
new file mode 100644
index 0000000..3c4b4c1
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile
@@ -0,0 +1,138 @@
+<TABLE border=1>
+<TR><TD><PRE>
+/* asource.c: [one line description of file]
+*    --------------------------------------------------------------------
+*
+*   [Project Name]
+*
+*   [License Statement, eg.
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.0 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/ ]
+*
+*   [Warranty Statement, eg.
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License. ]
+*
+*   [Author contact, eg.
+*   Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved.
+*
+*   Inquiries regarding the linux-wlan Open Source project can be
+*   made directly to:
+*
+*   AbsoluteValue Systems Inc.
+*   info@linux-wlan.com
+*   http://www.linux-wlan.com ]
+*
+*   [Change History]
+*
+*   [Verbose Description]
+*
+*   [Implementation and usage notes]
+*
+*   [References]
+*
+*    --------------------------------------------------------------------
+*/
+
+/* Portability/Compatibility header */
+#include &lt;wlan/wlan_compat.h&gt;
+
+/* The following prevents &quot;kernel_version&quot; from being set in this file. */
+#define __NO_VERSION__
+
+/* Non-project specific includes */
+/* PCMCIA headers generated during PCMCIA package installation */
+#include &lt;pcmcia/config.h&gt;
+#include &lt;pcmcia/k_compat.h&gt;
+
+/* Module related headers, non-module drivers should not include */
+#include &lt;linux/version.h&gt;
+
+#include &lt;assert.h&gt;
+#include &lt;linux/delay.h&gt;
+#include &lt;linux/kernel.h&gt;
+#include &lt;linux/types.h&gt;
+#include &lt;linux/fcntl.h&gt;
+#include &lt;linux/interrupt.h&gt;
+#include &lt;linux/ptrace.h&gt;
+#include &lt;linux/ioport.h&gt;
+#include &lt;linux/in.h&gt;
+#include &lt;linux/malloc.h&gt;
+#include &lt;linux/string.h&gt;
+#include &lt;linux/timer.h&gt;
+#include &lt;asm/system.h&gt;
+#include &lt;asm/bitops.h&gt;
+#include &lt;asm/io.h&gt;
+#include &lt;linux/errno.h&gt;
+
+/* Project Includes */
+#include &lt;wlan/version.h&gt;
+#include &lt;wlan/am930mib.h&gt;
+#include &lt;wlan/p80211hdr.h&gt;
+#include &lt;wlan/p80211mgmt.h&gt;
+#include &lt;wlan/wlan_ioctl.h&gt;
+#include &lt;wlan/wlan_stable.h&gt;
+#include &quot;am930di.h&quot;
+#include &quot;am930llc.h&quot;
+#include &quot;am930mac.h&quot;
+#include &quot;am930hw.h&quot;
+#include &quot;am930mgr.h&quot;
+
+/*====================================================================*/
+/* Local Constants                                                    */
+/*====================================================================*/
+
+#define ACONSTANT    22
+
+
+/*====================================================================*/
+/* Local Types                                                        */
+/*====================================================================*/
+
+typdef struct atype
+{
+    struct atype *next;
+    struct atype *prev;
+} atype_t;
+
+
+/*====================================================================*/
+/* Static data defined in this file                                   */
+/*====================================================================*/
+
+UINT8    wepkey[WLAN_WEP_NKEYS][WLAN_WEP_KEYLEN] =
+{
+    { 0xf1, 0x10, 0xec, 0xe0, 0xdc },
+    { 0x0f, 0xf2, 0x04, 0x09, 0xfb },
+    { 0x13, 0x37, 0xf2, 0xf9, 0x2d },
+    { 0xe9, 0x17, 0x19, 0x63, 0xc7 }
+};
+
+
+/*====================================================================*/
+/* Local Function Declarations                                        */
+/*====================================================================*/
+
+static void am930mgr_authen1_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen2_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen3_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+static void am930mgr_authen4_rx( am930mgr_t *mgr, wlan_fr_authen_t *f );
+
+/*====================================================================*/
+/* Function Definitions                                               */
+/*====================================================================*/
+
+
+/*----------------------------------------------------------------
+*    am930mgr_assoc_begin_sta
+*
+*    Start the station association procedure.  Namely, send an
+*    association request frame to the AP.
+*
+*    returns: nothing for now
+----------------------------------------------------------------*/
+void am930mgr_assoc_begin_sta(am930mgr_t *mgr)
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c
new file mode 100644
index 0000000..fdbb997
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.c
@@ -0,0 +1,113 @@
+/* [filename]: [one line description of the file]
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes] 
+*
+* --------------------------------------------------------------------
+*/
+
+/*================================================================*/
+/* System Includes */
+
+
+/*================================================================*/
+/* Project Includes */
+
+
+/*================================================================*/
+/* Local Constants */
+
+
+/*================================================================*/
+/* Local Macros */
+
+
+/*================================================================*/
+/* Local Types */
+
+
+/*================================================================*/
+/* Local Static Definitions */
+
+/*----------------------------------------------------------------*/
+/* --A subsection */
+
+
+/*================================================================*/
+/* Local Function Declarations */
+
+
+/*----------------------------------------------------------------
+* [function name]
+*
+* [Description]
+*
+* Arguments:
+*	[arglist]
+*
+* Returns: 
+*	[retlist]
+*
+* Side effects:
+*	[desc]
+*
+* Call context:
+*	[desc]
+----------------------------------------------------------------*/
+int afunction(void)
+{
+        DBFENTER;
+
+        if ( a ) {
+                prinf("xxx");
+        }
+
+
+        DBFEXIT;
+        return 0;
+}
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html
new file mode 100644
index 0000000..c2ba914
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/format.srcfile.html
@@ -0,0 +1,311 @@
+<HTML>
+<HEAD>
+    <TITLE>AVS C Source file format</TITLE>
+</HEAD>
+<BODY>
+<H1>1. C Source file format</H1>
+<P>
+The following defines the common C source file format for linux-wlan.
+Most of the C-code formatting rules come from the linux kernel
+document <CODE>CodingStyle</CODE>.
+
+<H1>2. Characters and Code layout</H1>
+<H2>2.1. Character Set</H2>
+<P>
+For all source files, we'll stick to the US character set and avoid all 
+trigraphs.
+
+<H2>2.2. Indentation</H2>
+<P>
+All indentation will be done using tab characters which are mapped to a 
+spacing of eight characters.
+
+<H2>2.3. Braces</H2>
+<P>
+Braces will be placed according to the format originally established
+in Kernighan and Ritchie's book "The C Programming Language".  Here
+are some example statements:
+<P>
+<TABLE border=1><TR><TD><PRE>
+
+for ( i= 0; i &lt; N; i++) {
+   .
+   .
+   .
+}
+
+if ( a &lt; b ) {
+   .
+   .
+   .
+} else {
+   .
+   .
+   .
+}
+
+do {
+   .
+   .
+   .
+} while ( i &gt> 0 );
+</PRE></TABLE>
+
+
+
+<H1>3. Naming and Definition Conventions</H1>
+
+<H2>3.1. Preprocessor Elements</H2>
+<P>
+All elements defined via the C preprocessor (constants and macros) are
+named using all capital letters.  An exception is for macros that are
+either wrapping function calls for portability or for macros that are
+inline replacements for code that would normally be in a function.
+
+<H2>3.2. Types</H2>
+<P>
+All programmer defined types must have single word type names
+defined using the <PRE>typedef</PRE> statement.  All type names
+should be identified with an <PRE>_t</PRE> suffix.  This is
+particularly important for function pointers that are members of
+structures or arguments to functions.
+
+<P>
+Anonymous types are not allowed.  All struct, union, and enum
+types shall be named and typedef'd.
+
+
+<H2>3.3. Variables</H2>
+The following conventions should be followed for variable
+declaration and naming:
+	<UL>
+		<LI>Variables should be named using meaningful names.
+		<LI>Avoid variables with static lifetimes.
+		<LI>If static lifetime variables must be used, use file
+		scoped static variables and avoid static lifetime
+		variables with visibility beyond file scope. 
+		<LI>All static lifetime variables should be declared in
+		the "Local Statics" section near the top of a given
+		source file.
+	</UL>
+
+<H2>3.4. Functions</H2>
+The following conventions should be followed for function
+declaration and definition:
+	<UL>
+		<LI><B>All</B> functions must be declared above the point
+		where they are called.
+		<LI>Any functions that are only intended to be called
+		within a given source file should be declared static
+		within that file.
+		<LI>Functions defined within a common source file that are 
+		visible across source file boundaries should be named
+		using a prefix that is unique to that source file.
+	</UL>
+
+<H1>4. File Layout</H1>
+<P> 
+Each file should be layed out using a common format.  The
+following shows a complete file with all its major sections.
+
+<P>
+Each major section within the file is begun with a comment of the
+form:
+<PRE>
+/*================================================================*/
+/* [Section Name] */
+</PRE>
+
+<P>
+Subsections within a major section are denoted using:
+<PRE>
+/*----------------------------------------------------------------*/
+/*  [Subsection Name]  */
+</PRE>
+
+<P>
+<TABLE border=1><TR><TD>
+<PRE>
+/* [filename]: [one line description of the file]
+* --------------------------------------------------------------------
+*
+* [Project Name]
+*
+* [License Statement]
+*
+* [Warranty Statement]
+*
+* [Initial Author Statement]
+*   
+* --------------------------------------------------------------------
+*
+* [Initial Author Contact]
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes]
+*
+* --------------------------------------------------------------------
+*/
+
+/*================================================================*/
+/* System Includes */
+
+
+/*================================================================*/
+/* Project Includes */
+
+
+/*================================================================*/
+/* Local Constants */
+
+
+/*================================================================*/
+/* Local Macros */
+
+/*----------------------------------------------------------------*/
+/*  [A subsection]  */
+
+/*================================================================*/
+/* Local Types */
+
+
+/*================================================================*/
+/* Local Static Definitions */
+
+
+/*================================================================*/
+/* Local Function Declarations */
+
+
+/*================================================================*/
+/* Function Definitions */
+
+</PRE>
+</TABLE>
+
+<H2>4.1. System  Includes Section</H2>
+<P>
+Preprocessor <CODE>#include</CODE> statements that are including
+<I>system</I> includes shall be placed in this section.  System
+includes are those include files that are <B>not</B> part of the
+managed source for this project.
+
+<H2>4.2. Project Includes Section</H2>
+<P>
+Preprocessor <CODE>#include</CODE> statements that are including
+<I>project</I> includes shall be placed in this section.  Project 
+includes are those include files that are a part of the
+managed source for this project.
+
+<H2>4.3. Local Constants Section</H2>
+<P>
+Preprocessor "manifest" constants that are local to this file shall be
+placed in this section.  "Manifest" constants are preprocessor macros
+that take no arguments.
+
+<H2>4.4. Local Macros Section</H2>
+<P>
+Proprocessor macros that accept arguments shall be placed in this
+section.
+
+<H2>4.5. Local Types Section</H2>
+<P>
+Programmer defined types that are only used within the scope of this
+file shall be defined in this section.  Programmer defined types that
+are used in more than one source file should be defined in a header
+file.
+
+<H2>4.6. Local Static Definitions Section</H2>
+<P>
+Variables with static extent that are defined within this file shall
+be placed in this section.  Whether a variable has scope beyond this
+file will be apparent based on the presence or absence of the
+<CODE>static</CODE> keyword in the declaration.  If a variable is
+declared without the <CODE>static</CODE> keyword, there should be an
+<CODE>extern</CODE> declaration for that variable in a header file.
+
+<H2>4.6. Local Function Declarations Section</H2>
+<P>
+Functions that are only used within this file should be declared
+(prototyped) in this section.  Additionally, these functions should be
+declared using the <CODE>static</CODE> keyword.  This avoids polluting
+the global namespace with function names that need not be
+<CODE>extern</CODE>.
+
+<P>
+Any functions defined in this file that <I>are</I> called from outside
+this file should be declared (prototyped) in a header file.
+
+<H2>4.6. Function Definitions Section</H2>
+<P>
+This section contains the definitions of the functions in this file.
+Each function (or group of strongly related functions) will be
+preceded by a function header comment (see below).
+
+<H1>5. Comments</H1>
+<H2>5.1. File Header</H2>
+<P>
+Each source file will have a header comment containing information
+about the file as a whole.  That comment shall be formatted:
+<P>
+<TABLE border=1><TR><TD><PRE>
+/* [filename]: [one line description of the file]
+* --------------------------------------------------------------------
+*
+* [Project Name]
+*
+* [License Statement]
+*
+* [Warranty Statement]
+*
+* [Initial Author Statement]
+*   
+* --------------------------------------------------------------------
+*
+* [Initial Author Contact]
+*
+* --------------------------------------------------------------------
+*
+* [File Description]
+*
+* [Implementation and Usage Notes]
+*
+* --------------------------------------------------------------------
+*/
+</PRE>
+</TABLE>
+
+<H2>5.2. Function Header</H2>
+<P>
+Each function (or group of closely related functions) will be preceded 
+by a function comment header.  The <CODE>Side effects</CODE> and
+<CODE>Call context</CODE> sections are optional.
+<P>
+<TABLE border=1><TR><TD><PRE>
+/*----------------------------------------------------------------
+* [function name]
+*
+* [description]
+*
+* Arguments:
+*	[argument list]
+*
+* Returns: 
+*	[return value list]
+*
+* Side effects:
+*	[description of function side effects]
+*
+* Call context:
+*	[description of calling context]
+----------------------------------------------------------------*/
+</PRE>
+</TABLE>
+
+
+</BODY>
+</HTML>
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle
new file mode 100644
index 0000000..edba246
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/codingstd/linux.CodingStyle
@@ -0,0 +1,212 @@
+
+		Linux kernel coding style 
+
+This is a short document describing the preferred coding style for the
+linux kernel.  Coding style is very personal, and I won't _force_ my
+views on anybody, but this is what goes for anything that I have to be
+able to maintain, and I'd prefer it for most other things too.  Please
+at least consider the points made here. 
+
+First off, I'd suggest printing out a copy of the GNU coding standards,
+and NOT read it.  Burn them, it's a great symbolic gesture. 
+
+Anyway, here goes:
+
+
+	 	Chapter 1: Indentation
+
+Tabs are 8 characters, and thus indentations are also 8 characters. 
+There are heretic movements that try to make indentations 4 (or even 2!)
+characters deep, and that is akin to trying to define the value of PI to
+be 3. 
+
+Rationale: The whole idea behind indentation is to clearly define where
+a block of control starts and ends.  Especially when you've been looking
+at your screen for 20 straight hours, you'll find it a lot easier to see
+how the indentation works if you have large indentations. 
+
+Now, some people will claim that having 8-character indentations makes
+the code move too far to the right, and makes it hard to read on a
+80-character terminal screen.  The answer to that is that if you need
+more than 3 levels of indentation, you're screwed anyway, and should fix
+your program. 
+
+In short, 8-char indents make things easier to read, and have the added
+benefit of warning you when you're nesting your functions too deep. 
+Heed that warning. 
+
+
+		Chapter 2: Placing Braces
+
+The other issue that always comes up in C styling is the placement of
+braces.  Unlike the indent size, there are few technical reasons to
+choose one placement strategy over the other, but the preferred way, as
+shown to us by the prophets Kernighan and Ritchie, is to put the opening
+brace last on the line, and put the closing brace first, thusly:
+
+	if (x is true) {
+		we do y
+	}
+
+However, there is one special case, namely functions: they have the
+opening brace at the beginning of the next line, thus:
+
+	int function(int x)
+	{
+		body of function
+	}
+
+Heretic people all over the world have claimed that this inconsistency
+is ...  well ...  inconsistent, but all right-thinking people know that
+(a) K&R are _right_ and (b) K&R are right.  Besides, functions are
+special anyway (you can't nest them in C). 
+
+Note that the closing brace is empty on a line of its own, _except_ in
+the cases where it is followed by a continuation of the same statement,
+ie a "while" in a do-statement or an "else" in an if-statement, like
+this:
+
+	do {
+		body of do-loop
+	} while (condition);
+
+and
+
+	if (x == y) {
+		..
+	} else if (x > y) {
+		...
+	} else {
+		....
+	}
+			
+Rationale: K&R. 
+
+Also, note that this brace-placement also minimizes the number of empty
+(or almost empty) lines, without any loss of readability.  Thus, as the
+supply of new-lines on your screen is not a renewable resource (think
+25-line terminal screens here), you have more empty lines to put
+comments on. 
+
+
+		Chapter 3: Naming
+
+C is a Spartan language, and so should your naming be.  Unlike Modula-2
+and Pascal programmers, C programmers do not use cute names like
+ThisVariableIsATemporaryCounter.  A C programmer would call that
+variable "tmp", which is much easier to write, and not the least more
+difficult to understand. 
+
+HOWEVER, while mixed-case names are frowned upon, descriptive names for
+global variables are a must.  To call a global function "foo" is a
+shooting offense. 
+
+GLOBAL variables (to be used only if you _really_ need them) need to
+have descriptive names, as do global functions.  If you have a function
+that counts the number of active users, you should call that
+"count_active_users()" or similar, you should _not_ call it "cntusr()". 
+
+Encoding the type of a function into the name (so-called Hungarian
+notation) is brain damaged - the compiler knows the types anyway and can
+check those, and it only confuses the programmer.  No wonder MicroSoft
+makes buggy programs. 
+
+LOCAL variable names should be short, and to the point.  If you have
+some random integer loop counter, it should probably be called "i". 
+Calling it "loop_counter" is non-productive, if there is no chance of it
+being mis-understood.  Similarly, "tmp" can be just about any type of
+variable that is used to hold a temporary value. 
+
+If you are afraid to mix up your local variable names, you have another
+problem, which is called the function-growth-hormone-imbalance syndrome. 
+See next chapter. 
+
+		
+		Chapter 4: Functions
+
+Functions should be short and sweet, and do just one thing.  They should
+fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24,
+as we all know), and do one thing and do that well. 
+
+The maximum length of a function is inversely proportional to the
+complexity and indentation level of that function.  So, if you have a
+conceptually simple function that is just one long (but simple)
+case-statement, where you have to do lots of small things for a lot of
+different cases, it's OK to have a longer function. 
+
+However, if you have a complex function, and you suspect that a
+less-than-gifted first-year high-school student might not even
+understand what the function is all about, you should adhere to the
+maximum limits all the more closely.  Use helper functions with
+descriptive names (you can ask the compiler to in-line them if you think
+it's performance-critical, and it will probably do a better job of it
+that you would have done). 
+
+Another measure of the function is the number of local variables.  They
+shouldn't exceed 5-10, or you're doing something wrong.  Re-think the
+function, and split it into smaller pieces.  A human brain can
+generally easily keep track of about 7 different things, anything more
+and it gets confused.  You know you're brilliant, but maybe you'd like
+to understand what you did 2 weeks from now. 
+
+
+		Chapter 5: Commenting
+
+Comments are good, but there is also a danger of over-commenting.  NEVER
+try to explain HOW your code works in a comment: it's much better to
+write the code so that the _working_ is obvious, and it's a waste of
+time to explain badly written code. 
+
+Generally, you want your comments to tell WHAT your code does, not HOW. 
+Also, try to avoid putting comments inside a function body: if the
+function is so complex that you need to separately comment parts of it,
+you should probably go back to chapter 4 for a while.  You can make
+small comments to note or warn about something particularly clever (or
+ugly), but try to avoid excess.  Instead, put the comments at the head
+of the function, telling people what it does, and possibly WHY it does
+it. 
+
+
+		Chapter 6: You've made a mess of it
+
+That's OK, we all do.  You've probably been told by your long-time Unix
+user helper that "GNU emacs" automatically formats the C sources for
+you, and you've noticed that yes, it does do that, but the defaults it
+uses are less than desirable (in fact, they are worse than random
+typing - a infinite number of monkeys typing into GNU emacs would never
+make a good program). 
+
+So, you can either get rid of GNU emacs, or change it to use saner
+values.  To do the latter, you can stick the following in your .emacs file:
+
+(defun linux-c-mode ()
+  "C mode with adjusted defaults for use with the Linux kernel."
+  (interactive)
+  (c-mode)
+  (c-set-style "K&R")
+  (setq c-basic-offset 8))
+
+This will define the M-x linux-c-mode command.  When hacking on a
+module, if you put the string -*- linux-c -*- somewhere on the first
+two lines, this mode will be automatically invoked. Also, you may want
+to add
+
+(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.[ch]$" . linux-c-mode)
+                       auto-mode-alist))
+
+to your .emacs file if you want to have linux-c-mode switched on
+automagically when you edit source files under /usr/src/linux.
+
+But even if you fail in getting emacs to do sane formatting, not
+everything is lost: use "indent".
+
+Now, again, GNU indent has the same brain dead settings that GNU emacs
+has, which is why you need to give it a few command line options. 
+However, that's not too bad, because even the makers of GNU indent
+recognize the authority of K&R (the GNU people aren't evil, they are
+just severely misguided in this matter), so you just give indent the
+options "-kr -i8" (stands for "K&R, 8 character indents"). 
+
+"indent" has a lot of options, and especially when it comes to comment
+re-formatting you may want to take a look at the manual page.  But
+remember: "indent" is not a fix for bad programming. 
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug
new file mode 100644
index 0000000..d37c18b
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.debug
@@ -0,0 +1,90 @@
+* doc/config.debug
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+The kernel components of linux-wlan currently have debugging code
+that can be enabled via a "make config" option.  If debug output
+has been compiled into a driver, enable it by setting the value of the 
+module parameter xxx_debug
+where xxx is the name of the component.  There are five levels of
+debugging (1-5).  Here's a summary of the levels and their usage:
+    1 - Enables most error messages for exception (but rare) conditions
+    2 - Enables more exceptions  
+    3 - Enables MAC status output
+    4 - More status
+    5 - Function entry and exit
+
+The levels are additive.  For example, level 3 includes level 3
+messages plus levels 1 and 2.
+
+To configure p80211.o for debug output, put the following line (with
+your own level number) in your modutils configuration file (usually
+/etc/conf.modules or /etc/modules.conf):
+ 
+  options p80211 wlan_debug=2
+
+To configure the prism2_cs driver for debug output, put the following
+line (with your own level number) in your /etc/pcmcia/config.opts
+file:
+
+  module "prism2_cs" opts "prism2_debug=2"
+
+To configure the PCI, PLX, or USB driver for debug output, put the following
+line (with your own level number) in your modutils configuration file (usually
+/etc/conf.modules or /etc/modules.conf):
+
+  options prism2_pci prism2_debug=3
+  options prism2_plx prism2_debug=3
+  options prism2_usb prism2_debug=3
+
+
+Then configure the collection and display of your kernel output.  This
+is usually done using syslog.  Here are the relevant entries from the
+/etc/syslog.conf file on one of our test machines:
+
+kern.*						/var/log/kernel
+kern.*						/dev/tty9
+*.info;mail.none;news.none;authpriv.none	/var/log/messages
+*.info;mail.none;news.none;authpriv.none	/dev/tty10
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng
new file mode 100644
index 0000000..c6ec9d8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/config.linux-wlan-ng
@@ -0,0 +1,264 @@
+* doc/config.linux-wlan-ng
+*
+* Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+* --------------------------------------------------------------------
+*
+* linux-wlan
+*
+*   The contents of this file are subject to the Mozilla Public
+*   License Version 1.1 (the "License"); you may not use this file
+*   except in compliance with the License. You may obtain a copy of
+*   the License at http://www.mozilla.org/MPL/
+*
+*   Software distributed under the License is distributed on an "AS
+*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+*   implied. See the License for the specific language governing
+*   rights and limitations under the License.
+*
+*   Alternatively, the contents of this file may be used under the
+*   terms of the GNU Public License version 2 (the "GPL"), in which
+*   case the provisions of the GPL are applicable instead of the
+*   above.  If you wish to allow the use of your version of this file
+*   only under the terms of the GPL and not to allow others to use
+*   your version of this file under the MPL, indicate your decision
+*   by deleting the provisions above and replace them with the notice
+*   and other provisions required by the GPL.  If you do not delete
+*   the provisions above, a recipient may use your version of this
+*   file under either the MPL or the GPL.
+*
+* --------------------------------------------------------------------
+*
+* Inquiries regarding the linux-wlan Open Source project can be
+* made directly to:
+*
+* AbsoluteValue Systems Inc.
+* info@linux-wlan.com
+* http://www.linux-wlan.com
+*
+* --------------------------------------------------------------------
+*
+* Portions of the development of this software were funded by 
+* Intersil Corporation as part of PRISM(R) chipset product development.
+*
+* --------------------------------------------------------------------
+
+1. Summary
+
+This document describes a little more of the detail behind configuring the
+linux-wlan system.  
+
+2. Installed Componenents
+
+The linux-wlan-ng package consists of the following components:
+
+   p80211.o		Kernel module for 802.11 services
+   prism2sta_cs.o	Kernel module for the Prism2 PCMCIA device
+   			driver.
+   wlanctl-ng		User-mode utility for sending commands to
+   			802.11 services and MAC-specific drivers.
+   wland		User-mode daemon for receiving and handling
+   			events from 802.11 services and MAC-specific
+			drivers (not used in this version).
+   /etc/pcmcia/wlan-ng*	PCMCIA event and configuration scripts
+
+   *prism2dl		This utility is used for loading firmware
+   			images into prism2 cards.  DO NOT USE IT! 
+			UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING.  
+			This utility has the capability to damage a
+			card in a way that can only be repaired by the
+			manufacturer.
+
+When a 'make install' is performed, the modules are copied to the
+/usr/lib/modules/<kernelver>/net and /usr/lib/modules/pcmcia directory,
+the user-mode utilities are copied to /sbin, and the contents of
+linux-wlan-ng/etc/pcmcia are copied to the /etc/pcmcia directory.  If
+necessary, the pcmcia config files are altered to include a reference to
+the wlan-ng.conf file containing the information cardmgr uses to match
+card CIS information to specific device drivers at card insertion time.
+
+NOTE: It is very important that you restart your pcmcia services after
+installing linux-wlan-ng.  cardmgr will not recognize the information
+in the wlan-ng.conf file until after it has been restarted.
+
+	
+3. Configuration Variables
+
+To configure your installation for use, it will probably be necessary
+to edit the /etc/pcmcia/wlan-ng.opts file.  This file contains a
+collection of variable assignments that are used by the wlan-ng script
+to intialize your card at insertion time.  The variables are broken
+into groups: ENABLE, DOWNLOAD, USER MIB, WEP, STA, and AP START.
+
+Many of the choices involved in choosing configuration variable
+settings are dependent on whether you are setting up your system as a 
+Station (STA) or an Access Point (AP).  STA configuration is most
+common.  If you are using a mobile station that will connect to one or
+more APs, STA configuration is all you will need.
+
+3.1 ENABLE Group
+The only variable is this group is:
+
+WLAN_ENABLE=y
+	This variable determines whether the card will be intialized,
+	configured for operation, and your protocol stack configured.
+	Generally, you always want this set to 'y'.  For some cards,
+	you will set this variable to 'n' when performing card
+	maintenance like firmware upgrades.
+
+3.2 DOWNLOAD Group
+
+The DOWNLOAD group contains variables that indicate if code or data
+needs to be downloaded to the card prior to initialization and normal
+operation.  Currently, this is only required for the Prism2 card when
+running in AP mode.
+
+WLAN_DOWNLOAD=n
+	Set this variable to 'y' if code or data must be downloaded
+	into the card prior to operation.
+
+WLAN_DOWNLOADER=/sbin/prism2dl
+	This variable contains the name of the program used to
+	download the code into the card.
+
+WLAN_DLIMAGE=/etc/wlan/apfw.hex
+	This variable contains the name of the file you wish to
+	download.
+
+3.3 USER MIB Group
+
+There is only one variable in this group, USER_MIBS.  You may add your
+own local MIB item assignments assignments to this variable.  The
+wlan-ng script will loop through the assignments found in this
+variable and configure the card with each one prior to final
+configuration and enable.
+
+3.4 WEP Group
+
+The variables in the WEP group are used to configure the 802.11 "Wired
+Equivalent Privacy" element of the MAC if it is supported.  The driver
+is queried for WEP support prior to attempting WEP configuration.  If
+the driver states that WEP is NOT supported, these variables are
+ignored.  Note that you may need to set some of these variables even if 
+you are not using the privacy service.  If shared-key authentication
+is used, the WEP keys must be present.
+
+dot11PrivacyInvoked=false
+	Set this variable to "true" to enable the WEP support.
+
+lnxreq_hostWEPEncrypt=false
+lnxreq_hostWEPDecrypt=false 
+	Set these to true if you want WEP to be handled by the driver
+	instead of the hardware.  The only downside of this is that it
+	takes a bit of CPU time and you lose the ability to handle
+	fragmentation.   However, with prism2 cards, you should see a
+	performance boost, and with prism2.5 cards, this may avoid lockups.
+
+dot11WEPDefaultKeyID=1
+	This variable identifies which of the WEP keys is the default
+	key used for all transmits from this station.  In some
+	implementations, this can be changed (or rotated) later.
+
+dot11ExcludeUnencrypted=true
+	Setting this variable to "true" and dot11PrivacyInvoked to
+	true, has the effect of making WEP completely required for this 
+	station (or AP).  If set to "true", this STA will discard any
+	received frames that are not encrypted.
+
+PRIV_GENERATOR=/sbin/nwepgen
+	Some vendors include "WEP Key Generator" programs as part of
+	their windows or AP implementations.  This is purely a
+	convenience to prevent you from having to type in 40
+	hexadecimal digits.  It does not contribute to the secrity of
+	your system at all.  In some cases, we've included small
+	programs that generate keys in a manner compatible with the
+	vendor's method.  If you wish to use this capability, include
+	the name of the generator program here.
+
+PRIV_GENSTR="12345"
+	Every generator implementation we've seen so far uses some
+	kind of 'passphrase' to generate the keys.  This variable
+	contains the passphrase.  To disable the use of a generator,
+	leave this variable empty.
+
+dot11WEPDefaultKey0
+dot11WEPDefaultKey1
+dot11WEPDefaultKey2
+dot11WEPDefaultKey3
+	If you are configuring your keys by hand, you need to assign
+	these four variables.  The format is "xx:xx:xx:xx:xx" and the
+	order of the keys in these variables IS IMPORTANT.  Note: If
+	the PRIV_GENSTR variable is not empty, these variables are
+	ignored.
+
+3.5 STA Group
+
+Currently, there is only one variable in the STA group.  This will
+change over time.
+
+dot11DesiredSSID="WLAN_PRISM2"
+	This variable contains the SSID or "network name" of the
+	wireless network you wish to associate with.
+
+3.6 AP START Group
+
+If you have access to the necessary hardware and firmware, this driver
+can be used to set up a Access Point.  To configure for an access
+point, set the IS_AP variable to 'y'.  The following is a quick
+summary of the other AP configuration variables:
+
+
+APBRIDGEDEVICE=eth0
+	Defines the ethernet device that will be the 'other' port for
+	bridging 802.11 frames.
+APSSID="WLAN_PRISM2"
+	Defines the SSID that the AP will use when creating the network.
+APBCNINT=100
+	Defines the beacon interval (in Kus) that the AP will use.
+APDTIMINT=3
+	Defines the DTIM interval (in beacon intervals).
+
+APCFPOLLABLE|APCFPOLLREQ | Description
+---------------------------
+   false    |   false    | No point coordination by this AP
+   false    |   true     | AP will point coordinate for delivery only
+   true     |   false    | AP will point coordinate for deliver and polling
+   true     |   true     | Reserved
+
+APCFPPERIOD=3
+	Defines how often the contention free period occurrs (in
+	beacons).
+
+APCFPMAXDURATION=100
+	Defines the maximum length of the contention free period (in
+	Kus).
+
+APPROBEDELAY=100
+	Not used for infrastructure networks, any value is valid.
+
+APCHANNEL=6
+	Channel that the AP will create the network on.  Range of valid
+	values depends on you regulatory domain.  In the USA and Canada 
+	the range is 1-11.  In Japan the range is 1-14.
+
+
+APBASICRATES="2 4"
+	A whitespace separated list of data rates in units of 500Kb/s.
+	The basic rate set is the set of rates that stations MUST
+	support to be allowed to join the network.
+
+APOPRATES="2 4 11 22"
+	A whitespace separated list of data rates in units of 500Kb/s.
+	The operational rate set is the set of rates that are allowed
+	in the network.  It must be a superset of the basic rates
+	above.
+
+To complete the configuration of an Access Point, you will need to
+make sure you have kernel bridging enable in your currently running
+kernel and have the brcfg utility installed.  One version of the brcfg
+utility can be found at ftp://ftp.absoval.com
+
+To start the access point running, make sure the ethernet card is in the
+system first.  Then insert the WLAN card and everything should be
+configured automatically by the /etc/pcmcia/wlan-ng script.
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries
new file mode 100644
index 0000000..62f00d5
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/entries
@@ -0,0 +1,96 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/impnotes
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+1999-11-14T19:56:53.000000Z
+56
+mark
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+structptr.obj
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+be5e39160a9d1bf2e4913f8935108570
+1999-11-14T19:56:53.000000Z
+56
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8218
+
+l8s_uses.obj
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+d5218026c07652d9d89edc9047e60521
+1999-11-14T19:56:53.000000Z
+56
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8735
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/l8s_uses.obj.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/prop-base/structptr.obj.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base
new file mode 100644
index 0000000..2293095
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/l8s_uses.obj.svn-base
@@ -0,0 +1,294 @@
+%TGIF 4.1.16
+state(0,37,100.000,0,0,0,4,1,9,1,1,0,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
+%
+% @(#)$Header$
+% %W%
+%
+unit("1 pixel/pixel").
+color_info(11,65535,0,[
+	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
+	"red", 65535, 0, 0, 65535, 0, 0, 1,
+	"green", 0, 65535, 0, 0, 65535, 0, 1,
+	"blue", 0, 0, 65535, 0, 0, 65535, 1,
+	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
+	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
+	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
+	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
+	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
+	"black", 0, 0, 0, 0, 0, 0, 1,
+	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
+]).
+script_frac("0.6").
+fg_bg_colors('black','white').
+page(1,"",1,'').
+box('black','',88,172,632,532,0,2,1,0,0,0,0,0,0,'2',0,[
+]).
+text('black',580,149,1,0,1,21,14,1,11,3,0,0,0,0,2,21,14,0,0,"",0,0,0,0,160,'',[
+minilines(21,14,0,0,0,0,0,[
+mini_line(21,11,3,0,0,0,[
+str_block(0,21,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0,
+	"L8S")])
+])
+])]).
+box('black','',108,188,292,312,0,1,1,3,0,0,0,0,0,'1',0,[
+]).
+box('black','',108,384,292,520,0,1,1,4,0,0,0,0,0,'1',0,[
+]).
+box('black','',308,316,472,380,0,1,1,5,0,0,0,0,0,'1',0,[
+]).
+box('black','',340,432,448,512,0,1,1,6,0,0,0,0,0,'1',0,[
+]).
+box('black','',500,432,620,516,0,1,1,7,0,0,0,0,0,'1',0,[
+]).
+box('black','',332,188,464,252,0,1,1,8,0,0,0,0,0,'1',0,[
+]).
+box('black','',508,196,620,272,0,1,1,9,0,0,0,0,0,'1',0,[
+]).
+poly('black','',2,[
+	144,312,144,384],1,1,1,10,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,384,244,312],1,1,1,11,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,400,320,400,320,380],1,1,1,12,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,408,424,408,424,380],1,1,1,13,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,300,320,300,320,316],1,1,1,25,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,292,424,292,424,316],1,1,1,26,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	388,316,388,380],0,1,1,27,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	608,432,608,272],1,1,1,30,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	456,252,456,268,488,268,488,300,560,300,560,432],1,1,1,32,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	536,432,536,312,476,312,476,280,440,280,440,252],1,1,1,33,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	508,220,464,220],1,1,1,34,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	372,380,372,432],1,1,1,35,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	148,132,148,188],1,1,1,36,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,188,244,128],1,1,1,37,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	140,520,140,580],1,1,1,38,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,580,244,520],1,1,1,39,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	388,572,388,512],1,1,1,40,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	468,568,468,408,448,408,448,380],1,1,1,41,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',148,209,2,0,1,112,28,46,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,220,'',[
+minilines(112,28,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0,
+	"Kernel Network")])
+]),
+mini_line(112,11,3,0,0,0,[
+str_block(0,112,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0,
+	"Device Interface")])
+])
+])]).
+text('black',144,429,2,0,1,112,28,48,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,440,'',[
+minilines(112,28,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0,
+	"p80211 Network")])
+]),
+mini_line(112,11,3,0,0,0,[
+str_block(0,112,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0,
+	"Device Interface")])
+])
+])]).
+text('black',320,325,2,0,1,49,28,50,11,3,0,0,0,0,2,49,28,0,0,"",0,0,0,0,336,'',[
+minilines(49,28,0,0,0,0,0,[
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Frame")])
+]),
+mini_line(49,11,3,0,0,0,[
+str_block(0,49,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0,
+	"Convert")])
+])
+])]).
+text('black',404,329,2,0,1,42,28,54,11,3,0,0,0,0,2,42,28,0,0,"",0,0,0,0,340,'',[
+minilines(42,28,0,0,0,0,0,[
+mini_line(42,11,3,0,0,0,[
+str_block(0,42,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,42,11,3,0,0,0,0,0,0,0,
+	"Packet")])
+]),
+mini_line(42,11,3,0,0,0,[
+str_block(0,42,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,42,11,3,0,-1,0,0,0,0,0,
+	"Buffer")])
+])
+])]).
+text('black',364,197,2,0,1,63,28,56,11,3,0,0,0,0,2,63,28,0,0,"",0,0,0,0,208,'',[
+minilines(63,28,0,0,0,0,0,[
+mini_line(49,11,3,0,0,0,[
+str_block(0,49,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0,
+	"Request")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',532,209,2,0,1,70,28,58,11,3,0,0,0,0,2,70,28,0,0,"",0,0,0,0,220,'',[
+minilines(70,28,0,0,0,0,0,[
+mini_line(70,11,3,0,0,0,[
+str_block(0,70,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0,
+	"Indication")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',524,449,3,0,1,70,42,60,11,3,0,0,0,0,2,70,42,0,0,"",0,0,0,0,460,'',[
+minilines(70,42,0,0,0,0,0,[
+mini_line(21,11,3,0,0,0,[
+str_block(0,21,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0,
+	"MAC")])
+]),
+mini_line(70,11,3,0,0,0,[
+str_block(0,70,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0,
+	"Management")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',360,449,3,0,1,77,42,62,11,3,0,0,0,0,2,77,42,0,0,"",0,0,0,0,460,'',[
+minilines(77,42,0,0,0,0,0,[
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Frame")])
+]),
+mini_line(77,11,3,0,0,0,[
+str_block(0,77,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,77,11,3,0,0,0,0,0,0,0,
+	"Construct &")])
+]),
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Parse")])
+])
+])]).
+poly('black','',2,[
+	544,516,544,576],1,1,1,66,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	596,576,596,516],1,1,1,67,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',68,41,4,0,1,259,56,68,11,3,0,0,0,0,2,259,56,0,0,"",0,0,0,0,52,'',[
+minilines(259,56,0,0,0,0,0,[
+mini_line(175,11,3,0,0,0,[
+str_block(0,175,11,3,0,-2,0,0,0,[
+str_seg('black','Courier',0,69120,175,11,3,0,-2,0,0,0,0,0,
+	"doc/impnotes/l8s_uses.obj")])
+]),
+mini_line(259,11,3,0,0,0,[
+str_block(0,259,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,259,11,3,0,-1,0,0,0,0,0,
+	"L8S Internal/External Using Relations")])
+]),
+mini_line(56,11,3,0,0,0,[
+str_block(0,56,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,56,11,3,0,-1,0,0,0,0,0,
+	"11/14/99")])
+]),
+mini_line(154,11,3,0,0,0,[
+str_block(0,154,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,154,11,3,0,-3,0,0,0,0,0,
+	"Arrows indicate 'uses'")])
+])
+])]).
+poly('black','',2,[
+	536,196,536,128],1,1,1,70,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	292,200,332,200],1,1,1,71,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base
new file mode 100644
index 0000000..661daf9
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/.svn/text-base/structptr.obj.svn-base
@@ -0,0 +1,256 @@
+%TGIF 4.1.16
+state(0,37,100.000,0,0,0,4,1,9,1,1,1,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
+%
+% @(#)$Header$
+% %W%
+%
+unit("1 pixel/pixel").
+color_info(11,65535,0,[
+	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
+	"red", 65535, 0, 0, 65535, 0, 0, 1,
+	"green", 0, 65535, 0, 0, 65535, 0, 1,
+	"blue", 0, 0, 65535, 0, 0, 65535, 1,
+	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
+	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
+	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
+	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
+	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
+	"black", 0, 0, 0, 0, 0, 0, 1,
+	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
+]).
+script_frac("0.6").
+fg_bg_colors('black','white').
+page(1,"",1,'').
+text('black',32,3,2,0,1,153,32,0,13,3,0,0,0,0,2,153,32,0,0,"",0,0,0,0,16,'',[
+minilines(153,32,0,0,0,0,0,[
+mini_line(153,13,3,0,0,0,[
+str_block(0,153,13,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,80640,153,13,3,0,-3,0,0,0,0,0,
+	"doc/structptr.obj")])
+]),
+mini_line(72,13,3,0,0,0,[
+str_block(0,72,13,3,0,-2,0,0,0,[
+str_seg('black','Courier',0,80640,72,13,3,0,-2,0,0,0,0,0,
+	"11/14/99")])
+])
+])]).
+text('black',76,81,1,0,1,175,14,4,11,3,0,0,0,0,2,175,14,0,0,"",0,0,0,0,92,'',[
+minilines(175,14,0,0,0,0,0,[
+mini_line(175,11,3,0,0,0,[
+str_block(0,175,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,175,11,3,0,-3,0,0,0,0,0,
+	"dev_link_t  (from pcmcia)")])
+])
+])]).
+box('black','',76,100,236,180,0,2,1,6,0,0,0,0,0,'2',0,[
+]).
+text('black',84,105,1,0,1,119,14,10,11,3,0,0,0,0,2,119,14,0,0,"",0,0,0,0,116,'',[
+minilines(119,14,0,0,0,0,0,[
+mini_line(119,11,3,0,0,0,[
+str_block(0,119,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,119,11,3,0,0,0,0,0,0,0,
+	"dev_node_t   *dev")])
+])
+])]).
+text('black',84,161,1,0,1,126,14,13,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,172,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+poly('black','',2,[
+	100,124,100,156],0,1,1,16,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',216,5,3,0,1,294,42,31,11,3,0,0,0,0,2,294,42,0,0,"",0,0,0,0,16,'',[
+minilines(294,42,0,0,0,0,0,[
+mini_line(273,11,3,0,0,0,[
+str_block(0,273,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,273,11,3,0,-1,0,0,0,0,0,
+	"Shows the links established between the")])
+]),
+mini_line(294,11,3,0,0,0,[
+str_block(0,294,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,294,11,3,0,-1,0,0,0,0,0,
+	"netdevice, wlandevice, pcmcia, and private")])
+]),
+mini_line(238,11,3,0,0,0,[
+str_block(0,238,11,3,0,-4,0,0,0,[
+str_seg('black','Courier',0,69120,238,11,3,0,-4,0,0,0,0,0,
+	"structures at initialization time.")])
+])
+])]).
+box('black','',76,268,236,372,0,2,1,33,0,0,0,0,0,'2',0,[
+]).
+text('black',84,273,1,0,1,126,14,40,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,284,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0,
+	"char         *name")])
+])
+])]).
+text('black',76,249,1,0,1,161,14,42,11,3,0,0,0,0,2,161,14,0,0,"",0,0,0,0,260,'',[
+minilines(161,14,0,0,0,0,0,[
+mini_line(161,11,3,0,0,0,[
+str_block(0,161,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,161,11,3,0,-3,0,0,0,0,0,
+	"wlandevice_t (from L8S)")])
+])
+])]).
+text('black',84,337,1,0,1,126,14,45,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,348,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+text('black',84,353,1,0,1,140,14,46,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,364,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0,
+	"netdevice_t  *netdev")])
+])
+])]).
+poly('black','',2,[
+	100,292,100,332],0,1,1,53,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+box('black','',80,460,240,564,0,2,1,61,0,0,0,0,0,'2',0,[
+]).
+text('black',88,465,1,0,1,126,14,62,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,476,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0,
+	"char         *name")])
+])
+])]).
+text('black',80,417,3,0,1,133,42,63,11,3,0,0,0,0,2,133,42,0,0,"",0,0,0,0,428,'',[
+minilines(133,42,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,-6,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,-6,0,0,0,0,0,
+	"struct device ")])
+]),
+mini_line(119,11,3,0,0,0,[
+str_block(0,119,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,119,11,3,0,-3,0,0,0,0,0,
+	"(aka netdevice_t)")])
+]),
+mini_line(133,11,3,0,0,0,[
+str_block(0,133,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,133,11,3,0,-3,0,0,0,0,0,
+	"(from linux kernel)")])
+])
+])]).
+text('black',88,545,1,0,1,126,14,64,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,556,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+poly('black','',2,[
+	104,484,104,540],0,1,1,66,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+box('black','',352,172,516,340,0,2,1,75,0,0,0,0,0,'2',0,[
+]).
+text('black',356,153,1,0,1,140,14,77,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,164,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,-3,0,0,0,0,0,
+	"devpriv_t (from MSD)")])
+])
+])]).
+text('black',364,321,1,0,1,140,14,78,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,332,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0,
+	"dev_link_t     *link")])
+])
+])]).
+poly('black','',2,[
+	388,276,388,316],0,1,1,79,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',364,177,2,0,1,133,28,88,11,3,0,0,0,0,2,133,28,0,0,"",0,0,0,0,188,'',[
+minilines(133,28,0,0,0,0,0,[
+mini_line(133,11,3,0,0,0,[
+str_block(0,133,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,133,11,3,0,-1,0,0,0,0,0,
+	"dev_node_t     node")])
+]),
+mini_line(91,11,3,0,0,0,[
+str_block(0,91,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,91,11,3,0,-3,0,0,0,0,0,
+	"(from pcmcia)")])
+])
+])]).
+box('black','',364,204,492,268,0,2,1,89,5,0,0,0,0,'2',0,[
+]).
+text('black',380,209,1,0,1,98,14,90,11,3,0,0,0,0,2,98,14,0,0,"",0,0,0,0,220,'',[
+minilines(98,14,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,-3,0,0,0,0,0,
+	"char  name[32]")])
+])
+])]).
+poly('black','',2,[
+	388,228,388,260],0,1,1,92,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	216,168,256,168,256,220,60,220,60,268,76,268],1,1,1,116,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	228,360,256,360,256,396,60,396,60,460,80,460],1,1,1,119,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	212,112,332,112,332,204,364,204],1,1,1,121,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	216,280,320,280,320,216,340,216],1,1,1,127,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	216,344,304,344,304,172,352,172],1,1,1,135,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	224,552,260,552,260,592,32,592,32,268,60,268],1,1,1,136,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	220,472,340,472,340,216,376,216],1,1,1,141,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	508,328,536,328,536,64,56,64,56,100,76,100],1,1,1,156,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj
new file mode 100644
index 0000000..2293095
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/l8s_uses.obj
@@ -0,0 +1,294 @@
+%TGIF 4.1.16
+state(0,37,100.000,0,0,0,4,1,9,1,1,0,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
+%
+% @(#)$Header$
+% %W%
+%
+unit("1 pixel/pixel").
+color_info(11,65535,0,[
+	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
+	"red", 65535, 0, 0, 65535, 0, 0, 1,
+	"green", 0, 65535, 0, 0, 65535, 0, 1,
+	"blue", 0, 0, 65535, 0, 0, 65535, 1,
+	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
+	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
+	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
+	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
+	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
+	"black", 0, 0, 0, 0, 0, 0, 1,
+	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
+]).
+script_frac("0.6").
+fg_bg_colors('black','white').
+page(1,"",1,'').
+box('black','',88,172,632,532,0,2,1,0,0,0,0,0,0,'2',0,[
+]).
+text('black',580,149,1,0,1,21,14,1,11,3,0,0,0,0,2,21,14,0,0,"",0,0,0,0,160,'',[
+minilines(21,14,0,0,0,0,0,[
+mini_line(21,11,3,0,0,0,[
+str_block(0,21,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0,
+	"L8S")])
+])
+])]).
+box('black','',108,188,292,312,0,1,1,3,0,0,0,0,0,'1',0,[
+]).
+box('black','',108,384,292,520,0,1,1,4,0,0,0,0,0,'1',0,[
+]).
+box('black','',308,316,472,380,0,1,1,5,0,0,0,0,0,'1',0,[
+]).
+box('black','',340,432,448,512,0,1,1,6,0,0,0,0,0,'1',0,[
+]).
+box('black','',500,432,620,516,0,1,1,7,0,0,0,0,0,'1',0,[
+]).
+box('black','',332,188,464,252,0,1,1,8,0,0,0,0,0,'1',0,[
+]).
+box('black','',508,196,620,272,0,1,1,9,0,0,0,0,0,'1',0,[
+]).
+poly('black','',2,[
+	144,312,144,384],1,1,1,10,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,384,244,312],1,1,1,11,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,400,320,400,320,380],1,1,1,12,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,408,424,408,424,380],1,1,1,13,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,300,320,300,320,316],1,1,1,25,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',3,[
+	292,292,424,292,424,316],1,1,1,26,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	388,316,388,380],0,1,1,27,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	608,432,608,272],1,1,1,30,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	456,252,456,268,488,268,488,300,560,300,560,432],1,1,1,32,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	536,432,536,312,476,312,476,280,440,280,440,252],1,1,1,33,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	508,220,464,220],1,1,1,34,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	372,380,372,432],1,1,1,35,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	148,132,148,188],1,1,1,36,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,188,244,128],1,1,1,37,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	140,520,140,580],1,1,1,38,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	244,580,244,520],1,1,1,39,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	388,572,388,512],1,1,1,40,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	468,568,468,408,448,408,448,380],1,1,1,41,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',148,209,2,0,1,112,28,46,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,220,'',[
+minilines(112,28,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0,
+	"Kernel Network")])
+]),
+mini_line(112,11,3,0,0,0,[
+str_block(0,112,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0,
+	"Device Interface")])
+])
+])]).
+text('black',144,429,2,0,1,112,28,48,11,3,0,0,0,0,2,112,28,0,0,"",0,0,0,0,440,'',[
+minilines(112,28,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,0,0,0,0,0,0,
+	"p80211 Network")])
+]),
+mini_line(112,11,3,0,0,0,[
+str_block(0,112,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,112,11,3,0,-1,0,0,0,0,0,
+	"Device Interface")])
+])
+])]).
+text('black',320,325,2,0,1,49,28,50,11,3,0,0,0,0,2,49,28,0,0,"",0,0,0,0,336,'',[
+minilines(49,28,0,0,0,0,0,[
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Frame")])
+]),
+mini_line(49,11,3,0,0,0,[
+str_block(0,49,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0,
+	"Convert")])
+])
+])]).
+text('black',404,329,2,0,1,42,28,54,11,3,0,0,0,0,2,42,28,0,0,"",0,0,0,0,340,'',[
+minilines(42,28,0,0,0,0,0,[
+mini_line(42,11,3,0,0,0,[
+str_block(0,42,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,42,11,3,0,0,0,0,0,0,0,
+	"Packet")])
+]),
+mini_line(42,11,3,0,0,0,[
+str_block(0,42,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,42,11,3,0,-1,0,0,0,0,0,
+	"Buffer")])
+])
+])]).
+text('black',364,197,2,0,1,63,28,56,11,3,0,0,0,0,2,63,28,0,0,"",0,0,0,0,208,'',[
+minilines(63,28,0,0,0,0,0,[
+mini_line(49,11,3,0,0,0,[
+str_block(0,49,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,49,11,3,0,0,0,0,0,0,0,
+	"Request")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',532,209,2,0,1,70,28,58,11,3,0,0,0,0,2,70,28,0,0,"",0,0,0,0,220,'',[
+minilines(70,28,0,0,0,0,0,[
+mini_line(70,11,3,0,0,0,[
+str_block(0,70,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0,
+	"Indication")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',524,449,3,0,1,70,42,60,11,3,0,0,0,0,2,70,42,0,0,"",0,0,0,0,460,'',[
+minilines(70,42,0,0,0,0,0,[
+mini_line(21,11,3,0,0,0,[
+str_block(0,21,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,21,11,3,0,-1,0,0,0,0,0,
+	"MAC")])
+]),
+mini_line(70,11,3,0,0,0,[
+str_block(0,70,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,70,11,3,0,0,0,0,0,0,0,
+	"Management")])
+]),
+mini_line(63,11,3,0,0,0,[
+str_block(0,63,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,63,11,3,0,-1,0,0,0,0,0,
+	"Interface")])
+])
+])]).
+text('black',360,449,3,0,1,77,42,62,11,3,0,0,0,0,2,77,42,0,0,"",0,0,0,0,460,'',[
+minilines(77,42,0,0,0,0,0,[
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Frame")])
+]),
+mini_line(77,11,3,0,0,0,[
+str_block(0,77,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,77,11,3,0,0,0,0,0,0,0,
+	"Construct &")])
+]),
+mini_line(35,11,3,0,0,0,[
+str_block(0,35,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,35,11,3,0,-1,0,0,0,0,0,
+	"Parse")])
+])
+])]).
+poly('black','',2,[
+	544,516,544,576],1,1,1,66,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	596,576,596,516],1,1,1,67,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',68,41,4,0,1,259,56,68,11,3,0,0,0,0,2,259,56,0,0,"",0,0,0,0,52,'',[
+minilines(259,56,0,0,0,0,0,[
+mini_line(175,11,3,0,0,0,[
+str_block(0,175,11,3,0,-2,0,0,0,[
+str_seg('black','Courier',0,69120,175,11,3,0,-2,0,0,0,0,0,
+	"doc/impnotes/l8s_uses.obj")])
+]),
+mini_line(259,11,3,0,0,0,[
+str_block(0,259,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,259,11,3,0,-1,0,0,0,0,0,
+	"L8S Internal/External Using Relations")])
+]),
+mini_line(56,11,3,0,0,0,[
+str_block(0,56,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,56,11,3,0,-1,0,0,0,0,0,
+	"11/14/99")])
+]),
+mini_line(154,11,3,0,0,0,[
+str_block(0,154,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,154,11,3,0,-3,0,0,0,0,0,
+	"Arrows indicate 'uses'")])
+])
+])]).
+poly('black','',2,[
+	536,196,536,128],1,1,1,70,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',2,[
+	292,200,332,200],1,1,1,71,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj
new file mode 100644
index 0000000..661daf9
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/impnotes/structptr.obj
@@ -0,0 +1,256 @@
+%TGIF 4.1.16
+state(0,37,100.000,0,0,0,4,1,9,1,1,1,0,1,0,1,0,'Courier',0,69120,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
+%
+% @(#)$Header$
+% %W%
+%
+unit("1 pixel/pixel").
+color_info(11,65535,0,[
+	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
+	"red", 65535, 0, 0, 65535, 0, 0, 1,
+	"green", 0, 65535, 0, 0, 65535, 0, 1,
+	"blue", 0, 0, 65535, 0, 0, 65535, 1,
+	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
+	"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
+	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
+	"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
+	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
+	"black", 0, 0, 0, 0, 0, 0, 1,
+	"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
+]).
+script_frac("0.6").
+fg_bg_colors('black','white').
+page(1,"",1,'').
+text('black',32,3,2,0,1,153,32,0,13,3,0,0,0,0,2,153,32,0,0,"",0,0,0,0,16,'',[
+minilines(153,32,0,0,0,0,0,[
+mini_line(153,13,3,0,0,0,[
+str_block(0,153,13,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,80640,153,13,3,0,-3,0,0,0,0,0,
+	"doc/structptr.obj")])
+]),
+mini_line(72,13,3,0,0,0,[
+str_block(0,72,13,3,0,-2,0,0,0,[
+str_seg('black','Courier',0,80640,72,13,3,0,-2,0,0,0,0,0,
+	"11/14/99")])
+])
+])]).
+text('black',76,81,1,0,1,175,14,4,11,3,0,0,0,0,2,175,14,0,0,"",0,0,0,0,92,'',[
+minilines(175,14,0,0,0,0,0,[
+mini_line(175,11,3,0,0,0,[
+str_block(0,175,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,175,11,3,0,-3,0,0,0,0,0,
+	"dev_link_t  (from pcmcia)")])
+])
+])]).
+box('black','',76,100,236,180,0,2,1,6,0,0,0,0,0,'2',0,[
+]).
+text('black',84,105,1,0,1,119,14,10,11,3,0,0,0,0,2,119,14,0,0,"",0,0,0,0,116,'',[
+minilines(119,14,0,0,0,0,0,[
+mini_line(119,11,3,0,0,0,[
+str_block(0,119,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,119,11,3,0,0,0,0,0,0,0,
+	"dev_node_t   *dev")])
+])
+])]).
+text('black',84,161,1,0,1,126,14,13,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,172,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+poly('black','',2,[
+	100,124,100,156],0,1,1,16,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',216,5,3,0,1,294,42,31,11,3,0,0,0,0,2,294,42,0,0,"",0,0,0,0,16,'',[
+minilines(294,42,0,0,0,0,0,[
+mini_line(273,11,3,0,0,0,[
+str_block(0,273,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,273,11,3,0,-1,0,0,0,0,0,
+	"Shows the links established between the")])
+]),
+mini_line(294,11,3,0,0,0,[
+str_block(0,294,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,294,11,3,0,-1,0,0,0,0,0,
+	"netdevice, wlandevice, pcmcia, and private")])
+]),
+mini_line(238,11,3,0,0,0,[
+str_block(0,238,11,3,0,-4,0,0,0,[
+str_seg('black','Courier',0,69120,238,11,3,0,-4,0,0,0,0,0,
+	"structures at initialization time.")])
+])
+])]).
+box('black','',76,268,236,372,0,2,1,33,0,0,0,0,0,'2',0,[
+]).
+text('black',84,273,1,0,1,126,14,40,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,284,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0,
+	"char         *name")])
+])
+])]).
+text('black',76,249,1,0,1,161,14,42,11,3,0,0,0,0,2,161,14,0,0,"",0,0,0,0,260,'',[
+minilines(161,14,0,0,0,0,0,[
+mini_line(161,11,3,0,0,0,[
+str_block(0,161,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,161,11,3,0,-3,0,0,0,0,0,
+	"wlandevice_t (from L8S)")])
+])
+])]).
+text('black',84,337,1,0,1,126,14,45,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,348,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+text('black',84,353,1,0,1,140,14,46,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,364,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0,
+	"netdevice_t  *netdev")])
+])
+])]).
+poly('black','',2,[
+	100,292,100,332],0,1,1,53,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+box('black','',80,460,240,564,0,2,1,61,0,0,0,0,0,'2',0,[
+]).
+text('black',88,465,1,0,1,126,14,62,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,476,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,-1,0,0,0,0,0,
+	"char         *name")])
+])
+])]).
+text('black',80,417,3,0,1,133,42,63,11,3,0,0,0,0,2,133,42,0,0,"",0,0,0,0,428,'',[
+minilines(133,42,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,-6,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,-6,0,0,0,0,0,
+	"struct device ")])
+]),
+mini_line(119,11,3,0,0,0,[
+str_block(0,119,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,119,11,3,0,-3,0,0,0,0,0,
+	"(aka netdevice_t)")])
+]),
+mini_line(133,11,3,0,0,0,[
+str_block(0,133,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,133,11,3,0,-3,0,0,0,0,0,
+	"(from linux kernel)")])
+])
+])]).
+text('black',88,545,1,0,1,126,14,64,11,3,0,0,0,0,2,126,14,0,0,"",0,0,0,0,556,'',[
+minilines(126,14,0,0,0,0,0,[
+mini_line(126,11,3,0,0,0,[
+str_block(0,126,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,126,11,3,0,0,0,0,0,0,0,
+	"void         *priv")])
+])
+])]).
+poly('black','',2,[
+	104,484,104,540],0,1,1,66,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+box('black','',352,172,516,340,0,2,1,75,0,0,0,0,0,'2',0,[
+]).
+text('black',356,153,1,0,1,140,14,77,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,164,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,-3,0,0,0,0,0,
+	"devpriv_t (from MSD)")])
+])
+])]).
+text('black',364,321,1,0,1,140,14,78,11,3,0,0,0,0,2,140,14,0,0,"",0,0,0,0,332,'',[
+minilines(140,14,0,0,0,0,0,[
+mini_line(140,11,3,0,0,0,[
+str_block(0,140,11,3,0,0,0,0,0,[
+str_seg('black','Courier',0,69120,140,11,3,0,0,0,0,0,0,0,
+	"dev_link_t     *link")])
+])
+])]).
+poly('black','',2,[
+	388,276,388,316],0,1,1,79,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+text('black',364,177,2,0,1,133,28,88,11,3,0,0,0,0,2,133,28,0,0,"",0,0,0,0,188,'',[
+minilines(133,28,0,0,0,0,0,[
+mini_line(133,11,3,0,0,0,[
+str_block(0,133,11,3,0,-1,0,0,0,[
+str_seg('black','Courier',0,69120,133,11,3,0,-1,0,0,0,0,0,
+	"dev_node_t     node")])
+]),
+mini_line(91,11,3,0,0,0,[
+str_block(0,91,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,91,11,3,0,-3,0,0,0,0,0,
+	"(from pcmcia)")])
+])
+])]).
+box('black','',364,204,492,268,0,2,1,89,5,0,0,0,0,'2',0,[
+]).
+text('black',380,209,1,0,1,98,14,90,11,3,0,0,0,0,2,98,14,0,0,"",0,0,0,0,220,'',[
+minilines(98,14,0,0,0,0,0,[
+mini_line(98,11,3,0,0,0,[
+str_block(0,98,11,3,0,-3,0,0,0,[
+str_seg('black','Courier',0,69120,98,11,3,0,-3,0,0,0,0,0,
+	"char  name[32]")])
+])
+])]).
+poly('black','',2,[
+	388,228,388,260],0,1,1,92,0,0,5,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	216,168,256,168,256,220,60,220,60,268,76,268],1,1,1,116,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	228,360,256,360,256,396,60,396,60,460,80,460],1,1,1,119,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	212,112,332,112,332,204,364,204],1,1,1,121,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	216,280,320,280,320,216,340,216],1,1,1,127,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	216,344,304,344,304,172,352,172],1,1,1,135,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	224,552,260,552,260,592,32,592,32,268,60,268],1,1,1,136,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',4,[
+	220,472,340,472,340,216,376,216],1,1,1,141,0,0,0,0,0,0,0,'1',0,0,
+    "0","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
+poly('black','',6,[
+	508,328,536,328,536,64,56,64,56,100,76,100],1,1,1,156,0,0,0,0,0,0,0,'1',0,0,
+    "00","",[
+    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
+]).
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries
new file mode 100644
index 0000000..2216594
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/entries
@@ -0,0 +1,164 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/doc/prism2
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2000-07-05T04:57:04.000000Z
+510
+joellen
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+ridlist-mib.html
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+712752e55308c95248ed8560ec303943
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57551
+
+ridlist-rid.txt
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+82eeafa0872f5219e2b2368eff3e865e
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49082
+
+ridlist-rid.html
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+dfa2544fcecf3456d5815ccd3ba7765e
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57551
+
+ridlist-mib.txt
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+490ddc40de913718faac18a992a7bf92
+2000-07-05T04:57:04.000000Z
+510
+joellen
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49082
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.html.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-mib.txt.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.html.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/prop-base/ridlist-rid.txt.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base
new file mode 100644
index 0000000..63cac2f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.html.svn-base
@@ -0,0 +1,2001 @@
+<HTML>
+<HEAD>
+	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE>
+</HEAD>
+<BODY>
+<P>
+<B>doc/prism2/ridlist-mib.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B>
+</P>
+<P>
+<BR>API - The document source for this RID is the API Enhancements Document
+</P>
+<P>
+<BR>PRO - The document source for this RID is the CW10 Programmer's Manual
+</P>
+<P>
+<BR>[1] - read mode is implemented internally within the driver
+</P>
+<P>
+<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+</P>
+<P>
+<BR>[3] - This RID is implemented internally in the driver
+</P>
+<P>
+<BR>
+</P>
+<P>
+<CENTER>
+<TABLE border=1>
+	<TR>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B>
+		<TD valign=bottom><B>STA</B>
+		<TD valign=bottom><B>AP</B>
+		<TD valign=bottom><B>802.11 MibItem Name</B>
+		<TD valign=bottom><B>Doc<BR>Src</B>
+		<TD valign=bottom><B>Implemented?</B>
+	<TR>
+		<TD valign=bottom>F200
+		<TD valign=bottom>LinkStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F201
+		<TD valign=bottom>AssociationStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F202
+		<TD valign=bottom>AuthenticationRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F203
+		<TD valign=bottom>PowerSaveUserCount
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC29
+		<TD valign=bottom>cnfWEPKeyMappingTable
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2A
+		<TD valign=bottom>cnfAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2B
+		<TD valign=bottom>cnfMaxAssociatedStations
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2C
+		<TD valign=bottom>cnfTxControl
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2D
+		<TD valign=bottom>cnfRoamingMode
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2E
+		<TD valign=bottom>cnfHostAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC30
+		<TD valign=bottom>cnfRcvCrcError
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC31
+		<TD valign=bottom>cnfMMLife
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC32
+		<TD valign=bottom>cnfAltRetryCnt
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC33
+		<TD valign=bottom>cnfBeaconInterval
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC34
+		<TD valign=bottom>cnfAPPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC35
+		<TD valign=bottom>cnfSTAPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9E
+		<TD valign=bottom>TxRateControl0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9F
+		<TD valign=bottom>TxRateControl1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA0
+		<TD valign=bottom>TxRateControl2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA1
+		<TD valign=bottom>TxRateControl3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA2
+		<TD valign=bottom>TxRateControl4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA3
+		<TD valign=bottom>TxRateControl5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA4
+		<TD valign=bottom>TxRateControl6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB0
+		<TD valign=bottom>cnfShortPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB1
+		<TD valign=bottom>cnfExcludeLongPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB3
+		<TD valign=bottom>cnfBasicRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE1
+		<TD valign=bottom>ScanRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE2
+		<TD valign=bottom>JoinRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE3
+		<TD valign=bottom>authenticateStation
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE4
+		<TD valign=bottom>ChannelInfoRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F101
+		<TD valign=bottom>ScanResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F102
+		<TD valign=bottom>ChannelInfoResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC00
+		<TD valign=bottom>cnfPortType
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC03
+		<TD valign=bottom>cnfOwnChannel
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC04
+		<TD valign=bottom>cnfOwnSSID IBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC05
+		<TD valign=bottom>cnfOwnATIMWindow
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC06
+		<TD valign=bottom>cnfSystemScale
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC07
+		<TD valign=bottom>cnfMaxDataLength
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC08
+		<TD valign=bottom>cnfWDSAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0A
+		<TD valign=bottom>cnfPMEPS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0B
+		<TD valign=bottom>cnfMulticastReceive
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0C
+		<TD valign=bottom>cnfMaxSleepDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0D
+		<TD valign=bottom>cnfPMHoldoverDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0E
+		<TD valign=bottom>cnfOwnName
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC11
+		<TD valign=bottom>cnfWDSAddress1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC12
+		<TD valign=bottom>cnfWDSAddress2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC13
+		<TD valign=bottom>cnfWDSAddress3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC14
+		<TD valign=bottom>cnfWDSAddress4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC15
+		<TD valign=bottom>cnfWDSAddress5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC16
+		<TD valign=bottom>cnfWDSAddress6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC17
+		<TD valign=bottom>cnfMulticastPMBuffering
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC81
+		<TD valign=bottom>CreateIBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC90
+		<TD valign=bottom>FragmentationThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC91
+		<TD valign=bottom>FragmentationThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC92
+		<TD valign=bottom>FragmentationThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC93
+		<TD valign=bottom>FragmentationThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC94
+		<TD valign=bottom>FragmentationThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC95
+		<TD valign=bottom>FragmentationThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC96
+		<TD valign=bottom>FragmentationThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC97
+		<TD valign=bottom>RTSThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC98
+		<TD valign=bottom>RTSThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC99
+		<TD valign=bottom>RTSThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9A
+		<TD valign=bottom>RTSThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9B
+		<TD valign=bottom>RTSThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9C
+		<TD valign=bottom>RTSThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9D
+		<TD valign=bottom>RTSThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB4
+		<TD valign=bottom>cnfSupportedRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE0
+		<TD valign=bottom>TickTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD00
+		<TD valign=bottom>MaxLoadTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD01
+		<TD valign=bottom>DownloadBuffer
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD02
+		<TD valign=bottom>PRIIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD03
+		<TD valign=bottom>PRISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD04
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0A
+		<TD valign=bottom>NICSerialNumber
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0B
+		<TD valign=bottom>NICIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0C
+		<TD valign=bottom>MFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0D
+		<TD valign=bottom>CFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD10
+		<TD valign=bottom>ChannelList
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD11
+		<TD valign=bottom>RegulatoryDomains
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD13
+		<TD valign=bottom>CIS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD20
+		<TD valign=bottom>STAIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD21
+		<TD valign=bottom>STASupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD22
+		<TD valign=bottom>MFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD23
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD40
+		<TD valign=bottom>PortStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD41
+		<TD valign=bottom>CurrentSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD42
+		<TD valign=bottom>CurrentBSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD43
+		<TD valign=bottom>CommsQuality
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD44
+		<TD valign=bottom>CurrentTxRate
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD46
+		<TD valign=bottom>CurrentScaleThresholds
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD80
+		<TD valign=bottom>CurrentTxRate1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD81
+		<TD valign=bottom>CurrentTxRate2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD82
+		<TD valign=bottom>CurrentTxRate3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD83
+		<TD valign=bottom>CurrentTxRate4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD84
+		<TD valign=bottom>CurrentTxRate5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD85
+		<TD valign=bottom>CurrentTxRate6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC2
+		<TD valign=bottom>CurrentPowerState
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC6
+		<TD valign=bottom>SupportedDataRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ACKFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC85
+		<TD valign=bottom>PromiscuousMode
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1-32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [2]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address10
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address11
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address12
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address13
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address14
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address15
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address16
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address17
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address18
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address19
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address20
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address21
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address22
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address23
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address24
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address25
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address26
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address27
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address28
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address29
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address2
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address30
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address31
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address3
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address4
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address5
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address6
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address7
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address8
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address9
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AntennaListIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD47
+		<TD valign=bottom>ProtocolRspTime
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AssociationResponseTimeOut
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStatus
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithm1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB2
+		<TD valign=bottom>cnfAuthenticationRspTO
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationResponseTimeOut
+		<TD valign=bottom>API
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD45
+		<TD valign=bottom>CurrentBeaconInterval
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11BeaconPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAModeSupported
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPMaxDuration
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4C
+		<TD valign=bottom>CFPollable
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CFPollable
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityEnabled
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityPresent
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC3
+		<TD valign=bottom>CCAMode
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentCCAMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC1
+		<TD valign=bottom>CurrentChannel
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentChannel
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentChannelNumber
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentPattern
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRegDomain
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentSet
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxPowerLevel
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC10
+		<TD valign=bottom>cnfOwnDTIMPeriod
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11DTIMPeriod
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredBSSType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [3]
+	<TR>
+		<TD valign=bottom>FC02
+		<TD valign=bottom>cnfDesiredSSID
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredSSID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySelectionRx
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySupport
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11EDThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ExcludeUnencrypted
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FCSErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FailedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC82
+		<TD valign=bottom>FragmentationThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FragmentationThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FrameDuplicateCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11HopTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD49
+		<TD valign=bottom>LongRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11LongRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD86
+		<TD valign=bottom>OwnMACAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MACAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ManufacturerID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD4B
+		<TD valign=bottom>MaxReceiveLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxReceiveLifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4A
+		<TD valign=bottom>MaxTransmitLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxTransmitMSDULifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MediumOccupancyLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastReceivedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastTransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MultipleRetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11NumberSupportedPowerLevels
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC84
+		<TD valign=bottom>TxRateControl
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11OperationalRateSet
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PBCCOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC0
+		<TD valign=bottom>PHYType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PHYType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FC09
+		<TD valign=bottom>cnfPMEnabled
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PowerManagementMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PrivacyInvoked
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4F
+		<TD valign=bottom>PrivacyOptionImplemented
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PrivacyOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ProductID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSSuccessCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC83
+		<TD valign=bottom>RTSThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ReceivedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ShortPreambleOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD48
+		<TD valign=bottom>ShortRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ShortRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FC01
+		<TD valign=bottom>cnfOwnMACAddress
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11StationID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD12
+		<TD valign=bottom>TempType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11TempType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel1
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel7
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel8
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC24
+		<TD valign=bottom>cnfDefaultKey0
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey0
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC25
+		<TD valign=bottom>cnfDefaultKey1
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey1
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC26
+		<TD valign=bottom>cnfDefaultKey2
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey2
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC27
+		<TD valign=bottom>cnfDefaultKey3
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey3
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC23
+		<TD valign=bottom>cnfWEPDefaultKeyID
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKeyID
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPExcludedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPICVErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingLength
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingWEPOn
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPUndecryptableCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+</TABLE>
+</CENTER>
+</BODY>
+</HTML>
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base
new file mode 100644
index 0000000..eeac25b
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-mib.txt.svn-base
@@ -0,0 +1,510 @@
+doc/prism2/ridlist-mib.txt
+ Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.
+
+
+
+API - The document source for this RID is the API Enhancements Document
+
+PRO - The document source for this RID is the CW10 Programmer's Manual
+
+[1] - read mode is implemented internally within the driver
+
+[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+
+[3] - This RID is implemented internally in the driver
+
+=======================================================================================================
+PRISM2 | PRISM2               |     |     |                                       |     |  
+RID    | RID                  |     |     |                                       | Doc |  
+VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented?
+=======================================================================================================
+F200   | LinkStatus           |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F201   | AssociationStatus    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F202   | AuthenticationReques |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F203   | PowerSaveUserCount   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2A   | cnfAuthentication    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2B   | cnfMaxAssociatedStat |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2C   | cnfTxControl         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2D   | cnfRoamingMode       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2E   | cnfHostAuthenticatio |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC30   | cnfRcvCrcError       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC31   | cnfMMLife            |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC32   | cnfAltRetryCnt       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC33   | cnfBeaconInterval    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC34   | cnfAPPCFInfo         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC35   | cnfSTAPCFInfo        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9E   | TxRateControl0       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9F   | TxRateControl1       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA0   | TxRateControl2       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA1   | TxRateControl3       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA2   | TxRateControl4       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA3   | TxRateControl5       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA4   | TxRateControl6       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB0   | cnfShortPreamble     |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB1   | cnfExcludeLongPreamb |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB3   | cnfBasicRates        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE1   | ScanRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE2   | JoinRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE3   | authenticateStation  |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE4   | ChannelInfoRequest   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F101   | ScanResults          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F102   | ChannelInfoResults   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC00   | cnfPortType          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC03   | cnfOwnChannel        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC06   | cnfSystemScale       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC07   | cnfMaxDataLength     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC08   | cnfWDSAddress        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0A   | cnfPMEPS             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0B   | cnfMulticastReceive  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0E   | cnfOwnName           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC11   | cnfWDSAddress1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC12   | cnfWDSAddress2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC13   | cnfWDSAddress3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC14   | cnfWDSAddress4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC15   | cnfWDSAddress5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC16   | cnfWDSAddress6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC81   | CreateIBSS           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC90   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC91   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC92   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC93   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC94   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC95   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC96   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC97   | RTSThreshold0        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC98   | RTSThreshold1        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC99   | RTSThreshold2        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9A   | RTSThreshold3        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9B   | RTSThreshold4        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9C   | RTSThreshold5        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9D   | RTSThreshold6        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCB4   | cnfSupportedRates    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE0   | TickTime             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD00   | MaxLoadTime          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD01   | DownloadBuffer       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD02   | PRIIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD03   | PRISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD04   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0A   | NICSerialNumber      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0B   | NICIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0C   | MFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0D   | CFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD10   | ChannelList          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD11   | RegulatoryDomains    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD13   | CIS                  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD20   | STAIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD21   | STASupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD22   | MFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD23   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD40   | PortStatus           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD41   | CurrentSSID          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD42   | CurrentBSSID         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD43   | CommsQuality         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD44   | CurrentTxRate        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD46   | CurrentScaleThreshol |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD80   | CurrentTxRate1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD81   | CurrentTxRate2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD82   | CurrentTxRate3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD83   | CurrentTxRate4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD84   | CurrentTxRate5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD85   | CurrentTxRate6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC2   | CurrentPowerState    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC6   | SupportedDataRates   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ACKFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AntennaListIndex                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R
+-------------------------------------------------------------------------------------------------------
+FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAModeSupported                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityEnabled            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityPresent            | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentChannelNumber             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentDwellTime                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentIndex                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentPattern                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRegDomain                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentSet                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxPowerLevel              | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3]
+-------------------------------------------------------------------------------------------------------
+FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateReason               | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateStation              | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySelectionRx             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySupport                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11EDThreshold                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FCSErrorCount                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FailedCount                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FrameDuplicateCount              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11HopTime                          | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ManufacturerID                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MaxDwellTime                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MultipleRetryCount               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11PBCCOptionImplemented            | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ProductID                        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSSuccessCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ReceivedFragmentCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportIndex           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportValue           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RetryCount                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R
+-------------------------------------------------------------------------------------------------------
+FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedRxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedTxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFragmentCount         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFrameCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel1                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel2                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel3                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel4                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel5                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel6                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel7                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel8                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPExcludedCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPICVErrorCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingAddress             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingIndex               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingLength              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingValue               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPUndecryptableCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base
new file mode 100644
index 0000000..b6ebacb
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.html.svn-base
@@ -0,0 +1,2001 @@
+<HTML>
+<HEAD>
+	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE>
+</HEAD>
+<BODY>
+<P>
+<B>doc/prism2/ridlist-rid.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B>
+</P>
+<P>
+<BR>API - The document source for this RID is the API Enhancements Document
+</P>
+<P>
+<BR>PRO - The document source for this RID is the CW10 Programmer's Manual
+</P>
+<P>
+<BR>[1] - read mode is implemented internally within the driver
+</P>
+<P>
+<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+</P>
+<P>
+<BR>[3] - This RID is implemented internally in the driver
+</P>
+<P>
+<BR>
+</P>
+<P>
+<CENTER>
+<TABLE border=1>
+	<TR>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B>
+		<TD valign=bottom><B>STA</B>
+		<TD valign=bottom><B>AP</B>
+		<TD valign=bottom><B>802.11 MibItem Name</B>
+		<TD valign=bottom><B>Doc<BR>Src</B>
+		<TD valign=bottom><B>Implemented?</B>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ACKFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AntennaListIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStatus
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAModeSupported
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityEnabled
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityPresent
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentChannelNumber
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentPattern
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRegDomain
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentSet
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxPowerLevel
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredBSSType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySelectionRx
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySupport
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11EDThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FCSErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FailedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FrameDuplicateCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11HopTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ManufacturerID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastReceivedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastTransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MultipleRetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11NumberSupportedPowerLevels
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PBCCOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ProductID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSSuccessCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ReceivedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ShortPreambleOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel1
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel7
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel8
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPExcludedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPICVErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingLength
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingWEPOn
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPUndecryptableCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F101
+		<TD valign=bottom>ScanResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F102
+		<TD valign=bottom>ChannelInfoResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F200
+		<TD valign=bottom>LinkStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F201
+		<TD valign=bottom>AssociationStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F202
+		<TD valign=bottom>AuthenticationRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F203
+		<TD valign=bottom>PowerSaveUserCount
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC00
+		<TD valign=bottom>cnfPortType
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC01
+		<TD valign=bottom>cnfOwnMACAddress
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11StationID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC02
+		<TD valign=bottom>cnfDesiredSSID
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredSSID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC03
+		<TD valign=bottom>cnfOwnChannel
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC04
+		<TD valign=bottom>cnfOwnSSID IBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC05
+		<TD valign=bottom>cnfOwnATIMWindow
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC06
+		<TD valign=bottom>cnfSystemScale
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC07
+		<TD valign=bottom>cnfMaxDataLength
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC08
+		<TD valign=bottom>cnfWDSAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC09
+		<TD valign=bottom>cnfPMEnabled
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PowerManagementMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC0A
+		<TD valign=bottom>cnfPMEPS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0B
+		<TD valign=bottom>cnfMulticastReceive
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0C
+		<TD valign=bottom>cnfMaxSleepDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0D
+		<TD valign=bottom>cnfPMHoldoverDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0E
+		<TD valign=bottom>cnfOwnName
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC10
+		<TD valign=bottom>cnfOwnDTIMPeriod
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11DTIMPeriod
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC11
+		<TD valign=bottom>cnfWDSAddress1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC12
+		<TD valign=bottom>cnfWDSAddress2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC13
+		<TD valign=bottom>cnfWDSAddress3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC14
+		<TD valign=bottom>cnfWDSAddress4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC15
+		<TD valign=bottom>cnfWDSAddress5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC16
+		<TD valign=bottom>cnfWDSAddress6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC17
+		<TD valign=bottom>cnfMulticastPMBuffering
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC23
+		<TD valign=bottom>cnfWEPDefaultKeyID
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKeyID
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC24
+		<TD valign=bottom>cnfDefaultKey0
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey0
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC25
+		<TD valign=bottom>cnfDefaultKey1
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey1
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC26
+		<TD valign=bottom>cnfDefaultKey2
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey2
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC27
+		<TD valign=bottom>cnfDefaultKey3
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey3
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ExcludeUnencrypted
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PrivacyInvoked
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC29
+		<TD valign=bottom>cnfWEPKeyMappingTable
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2A
+		<TD valign=bottom>cnfAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2B
+		<TD valign=bottom>cnfMaxAssociatedStations
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2C
+		<TD valign=bottom>cnfTxControl
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2D
+		<TD valign=bottom>cnfRoamingMode
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2E
+		<TD valign=bottom>cnfHostAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC30
+		<TD valign=bottom>cnfRcvCrcError
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC31
+		<TD valign=bottom>cnfMMLife
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC32
+		<TD valign=bottom>cnfAltRetryCnt
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC33
+		<TD valign=bottom>cnfBeaconInterval
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC34
+		<TD valign=bottom>cnfAPPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC35
+		<TD valign=bottom>cnfSTAPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address10
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address11
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address12
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address13
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address14
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address15
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address16
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address17
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address18
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address19
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address20
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address21
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address22
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address23
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address24
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address25
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address26
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address27
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address28
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address29
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address2
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address30
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address31
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address3
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address4
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address5
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address6
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address7
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address8
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address9
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC81
+		<TD valign=bottom>CreateIBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC82
+		<TD valign=bottom>FragmentationThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FragmentationThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC83
+		<TD valign=bottom>RTSThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC84
+		<TD valign=bottom>TxRateControl
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11OperationalRateSet
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC85
+		<TD valign=bottom>PromiscuousMode
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1-32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [2]
+	<TR>
+		<TD valign=bottom>FC90
+		<TD valign=bottom>FragmentationThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC91
+		<TD valign=bottom>FragmentationThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC92
+		<TD valign=bottom>FragmentationThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC93
+		<TD valign=bottom>FragmentationThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC94
+		<TD valign=bottom>FragmentationThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC95
+		<TD valign=bottom>FragmentationThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC96
+		<TD valign=bottom>FragmentationThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC97
+		<TD valign=bottom>RTSThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC98
+		<TD valign=bottom>RTSThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC99
+		<TD valign=bottom>RTSThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9A
+		<TD valign=bottom>RTSThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9B
+		<TD valign=bottom>RTSThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9C
+		<TD valign=bottom>RTSThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9D
+		<TD valign=bottom>RTSThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9E
+		<TD valign=bottom>TxRateControl0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9F
+		<TD valign=bottom>TxRateControl1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA0
+		<TD valign=bottom>TxRateControl2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA1
+		<TD valign=bottom>TxRateControl3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA2
+		<TD valign=bottom>TxRateControl4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA3
+		<TD valign=bottom>TxRateControl5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA4
+		<TD valign=bottom>TxRateControl6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB0
+		<TD valign=bottom>cnfShortPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB1
+		<TD valign=bottom>cnfExcludeLongPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB2
+		<TD valign=bottom>cnfAuthenticationRspTO
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationResponseTimeOut
+		<TD valign=bottom>API
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FCB3
+		<TD valign=bottom>cnfBasicRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB4
+		<TD valign=bottom>cnfSupportedRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE0
+		<TD valign=bottom>TickTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE1
+		<TD valign=bottom>ScanRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE2
+		<TD valign=bottom>JoinRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE3
+		<TD valign=bottom>authenticateStation
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE4
+		<TD valign=bottom>ChannelInfoRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD00
+		<TD valign=bottom>MaxLoadTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD01
+		<TD valign=bottom>DownloadBuffer
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD02
+		<TD valign=bottom>PRIIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD03
+		<TD valign=bottom>PRISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD04
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0A
+		<TD valign=bottom>NICSerialNumber
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0B
+		<TD valign=bottom>NICIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0C
+		<TD valign=bottom>MFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0D
+		<TD valign=bottom>CFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD10
+		<TD valign=bottom>ChannelList
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD11
+		<TD valign=bottom>RegulatoryDomains
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD12
+		<TD valign=bottom>TempType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11TempType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD13
+		<TD valign=bottom>CIS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD20
+		<TD valign=bottom>STAIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD21
+		<TD valign=bottom>STASupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD22
+		<TD valign=bottom>MFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD23
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD40
+		<TD valign=bottom>PortStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD41
+		<TD valign=bottom>CurrentSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD42
+		<TD valign=bottom>CurrentBSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD43
+		<TD valign=bottom>CommsQuality
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD44
+		<TD valign=bottom>CurrentTxRate
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD45
+		<TD valign=bottom>CurrentBeaconInterval
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11BeaconPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD46
+		<TD valign=bottom>CurrentScaleThresholds
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD47
+		<TD valign=bottom>ProtocolRspTime
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AssociationResponseTimeOut
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD48
+		<TD valign=bottom>ShortRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ShortRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD49
+		<TD valign=bottom>LongRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11LongRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4A
+		<TD valign=bottom>MaxTransmitLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxTransmitMSDULifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4B
+		<TD valign=bottom>MaxReceiveLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxReceiveLifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4C
+		<TD valign=bottom>CFPollable
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CFPollable
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithm1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4F
+		<TD valign=bottom>PrivacyOptionImplemented
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PrivacyOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD80
+		<TD valign=bottom>CurrentTxRate1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD81
+		<TD valign=bottom>CurrentTxRate2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD82
+		<TD valign=bottom>CurrentTxRate3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD83
+		<TD valign=bottom>CurrentTxRate4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD84
+		<TD valign=bottom>CurrentTxRate5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD85
+		<TD valign=bottom>CurrentTxRate6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD86
+		<TD valign=bottom>OwnMACAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MACAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPMaxDuration
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MediumOccupancyLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC0
+		<TD valign=bottom>PHYType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PHYType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC1
+		<TD valign=bottom>CurrentChannel
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentChannel
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC2
+		<TD valign=bottom>CurrentPowerState
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC3
+		<TD valign=bottom>CCAMode
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentCCAMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC6
+		<TD valign=bottom>SupportedDataRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+</TABLE>
+</CENTER>
+</BODY>
+</HTML>
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base
new file mode 100644
index 0000000..02f3063
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/.svn/text-base/ridlist-rid.txt.svn-base
@@ -0,0 +1,510 @@
+doc/prism2/ridlist-rid.txt
+ Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.
+
+
+
+API - The document source for this RID is the API Enhancements Document
+
+PRO - The document source for this RID is the CW10 Programmer's Manual
+
+[1] - read mode is implemented internally within the driver
+
+[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+
+[3] - This RID is implemented internally in the driver
+
+=======================================================================================================
+PRISM2 | PRISM2               |     |     |                                       |     |  
+RID    | RID                  |     |     |                                       | Doc |  
+VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented?
+=======================================================================================================
+       |                      |     |     | dot11ACKFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AntennaListIndex                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAModeSupported                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityEnabled            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityPresent            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentChannelNumber             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentDwellTime                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentIndex                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentPattern                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRegDomain                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentSet                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxPowerLevel              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateReason               | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateStation              | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySelectionRx             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySupport                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11EDThreshold                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FCSErrorCount                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FailedCount                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FrameDuplicateCount              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11HopTime                          | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ManufacturerID                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MaxDwellTime                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MultipleRetryCount               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11PBCCOptionImplemented            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ProductID                        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSSuccessCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ReceivedFragmentCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportIndex           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportValue           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RetryCount                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedRxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedTxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFragmentCount         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFrameCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel1                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel2                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel3                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel4                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel5                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel6                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel7                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel8                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPExcludedCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPICVErrorCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingAddress             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingIndex               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingLength              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingValue               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPUndecryptableCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+F101   | ScanResults          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F102   | ChannelInfoResults   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F200   | LinkStatus           |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F201   | AssociationStatus    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F202   | AuthenticationReques |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F203   | PowerSaveUserCount   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC00   | cnfPortType          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC03   | cnfOwnChannel        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC06   | cnfSystemScale       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC07   | cnfMaxDataLength     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC08   | cnfWDSAddress        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC0A   | cnfPMEPS             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0B   | cnfMulticastReceive  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0E   | cnfOwnName           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC11   | cnfWDSAddress1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC12   | cnfWDSAddress2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC13   | cnfWDSAddress3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC14   | cnfWDSAddress4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC15   | cnfWDSAddress5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC16   | cnfWDSAddress6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2A   | cnfAuthentication    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2B   | cnfMaxAssociatedStat |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2C   | cnfTxControl         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2D   | cnfRoamingMode       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2E   | cnfHostAuthenticatio |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC30   | cnfRcvCrcError       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC31   | cnfMMLife            |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC32   | cnfAltRetryCnt       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC33   | cnfBeaconInterval    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC34   | cnfAPPCFInfo         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC35   | cnfSTAPCFInfo        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC81   | CreateIBSS           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2]
+-------------------------------------------------------------------------------------------------------
+FC90   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC91   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC92   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC93   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC94   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC95   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC96   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC97   | RTSThreshold0        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC98   | RTSThreshold1        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC99   | RTSThreshold2        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9A   | RTSThreshold3        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9B   | RTSThreshold4        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9C   | RTSThreshold5        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9D   | RTSThreshold6        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9E   | TxRateControl0       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9F   | TxRateControl1       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA0   | TxRateControl2       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA1   | TxRateControl3       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA2   | TxRateControl4       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA3   | TxRateControl5       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA4   | TxRateControl6       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB0   | cnfShortPreamble     |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB1   | cnfExcludeLongPreamb |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R
+-------------------------------------------------------------------------------------------------------
+FCB3   | cnfBasicRates        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB4   | cnfSupportedRates    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE0   | TickTime             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE1   | ScanRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE2   | JoinRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE3   | authenticateStation  |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE4   | ChannelInfoRequest   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FD00   | MaxLoadTime          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD01   | DownloadBuffer       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD02   | PRIIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD03   | PRISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD04   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0A   | NICSerialNumber      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0B   | NICIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0C   | MFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0D   | CFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD10   | ChannelList          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD11   | RegulatoryDomains    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD13   | CIS                  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD20   | STAIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD21   | STASupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD22   | MFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD23   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD40   | PortStatus           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD41   | CurrentSSID          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD42   | CurrentBSSID         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD43   | CommsQuality         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD44   | CurrentTxRate        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD46   | CurrentScaleThreshol |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD80   | CurrentTxRate1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD81   | CurrentTxRate2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD82   | CurrentTxRate3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD83   | CurrentTxRate4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD84   | CurrentTxRate5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD85   | CurrentTxRate6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC2   | CurrentPowerState    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC6   | SupportedDataRates   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html
new file mode 100644
index 0000000..63cac2f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.html
@@ -0,0 +1,2001 @@
+<HTML>
+<HEAD>
+	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE>
+</HEAD>
+<BODY>
+<P>
+<B>doc/prism2/ridlist-mib.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B>
+</P>
+<P>
+<BR>API - The document source for this RID is the API Enhancements Document
+</P>
+<P>
+<BR>PRO - The document source for this RID is the CW10 Programmer's Manual
+</P>
+<P>
+<BR>[1] - read mode is implemented internally within the driver
+</P>
+<P>
+<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+</P>
+<P>
+<BR>[3] - This RID is implemented internally in the driver
+</P>
+<P>
+<BR>
+</P>
+<P>
+<CENTER>
+<TABLE border=1>
+	<TR>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B>
+		<TD valign=bottom><B>STA</B>
+		<TD valign=bottom><B>AP</B>
+		<TD valign=bottom><B>802.11 MibItem Name</B>
+		<TD valign=bottom><B>Doc<BR>Src</B>
+		<TD valign=bottom><B>Implemented?</B>
+	<TR>
+		<TD valign=bottom>F200
+		<TD valign=bottom>LinkStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F201
+		<TD valign=bottom>AssociationStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F202
+		<TD valign=bottom>AuthenticationRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F203
+		<TD valign=bottom>PowerSaveUserCount
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC29
+		<TD valign=bottom>cnfWEPKeyMappingTable
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2A
+		<TD valign=bottom>cnfAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2B
+		<TD valign=bottom>cnfMaxAssociatedStations
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2C
+		<TD valign=bottom>cnfTxControl
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2D
+		<TD valign=bottom>cnfRoamingMode
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2E
+		<TD valign=bottom>cnfHostAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC30
+		<TD valign=bottom>cnfRcvCrcError
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC31
+		<TD valign=bottom>cnfMMLife
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC32
+		<TD valign=bottom>cnfAltRetryCnt
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC33
+		<TD valign=bottom>cnfBeaconInterval
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC34
+		<TD valign=bottom>cnfAPPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC35
+		<TD valign=bottom>cnfSTAPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9E
+		<TD valign=bottom>TxRateControl0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9F
+		<TD valign=bottom>TxRateControl1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA0
+		<TD valign=bottom>TxRateControl2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA1
+		<TD valign=bottom>TxRateControl3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA2
+		<TD valign=bottom>TxRateControl4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA3
+		<TD valign=bottom>TxRateControl5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA4
+		<TD valign=bottom>TxRateControl6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB0
+		<TD valign=bottom>cnfShortPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB1
+		<TD valign=bottom>cnfExcludeLongPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB3
+		<TD valign=bottom>cnfBasicRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE1
+		<TD valign=bottom>ScanRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE2
+		<TD valign=bottom>JoinRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE3
+		<TD valign=bottom>authenticateStation
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE4
+		<TD valign=bottom>ChannelInfoRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F101
+		<TD valign=bottom>ScanResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F102
+		<TD valign=bottom>ChannelInfoResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC00
+		<TD valign=bottom>cnfPortType
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC03
+		<TD valign=bottom>cnfOwnChannel
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC04
+		<TD valign=bottom>cnfOwnSSID IBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC05
+		<TD valign=bottom>cnfOwnATIMWindow
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC06
+		<TD valign=bottom>cnfSystemScale
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC07
+		<TD valign=bottom>cnfMaxDataLength
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC08
+		<TD valign=bottom>cnfWDSAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0A
+		<TD valign=bottom>cnfPMEPS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0B
+		<TD valign=bottom>cnfMulticastReceive
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0C
+		<TD valign=bottom>cnfMaxSleepDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0D
+		<TD valign=bottom>cnfPMHoldoverDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0E
+		<TD valign=bottom>cnfOwnName
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC11
+		<TD valign=bottom>cnfWDSAddress1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC12
+		<TD valign=bottom>cnfWDSAddress2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC13
+		<TD valign=bottom>cnfWDSAddress3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC14
+		<TD valign=bottom>cnfWDSAddress4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC15
+		<TD valign=bottom>cnfWDSAddress5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC16
+		<TD valign=bottom>cnfWDSAddress6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC17
+		<TD valign=bottom>cnfMulticastPMBuffering
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC81
+		<TD valign=bottom>CreateIBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC90
+		<TD valign=bottom>FragmentationThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC91
+		<TD valign=bottom>FragmentationThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC92
+		<TD valign=bottom>FragmentationThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC93
+		<TD valign=bottom>FragmentationThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC94
+		<TD valign=bottom>FragmentationThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC95
+		<TD valign=bottom>FragmentationThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC96
+		<TD valign=bottom>FragmentationThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC97
+		<TD valign=bottom>RTSThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC98
+		<TD valign=bottom>RTSThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC99
+		<TD valign=bottom>RTSThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9A
+		<TD valign=bottom>RTSThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9B
+		<TD valign=bottom>RTSThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9C
+		<TD valign=bottom>RTSThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9D
+		<TD valign=bottom>RTSThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB4
+		<TD valign=bottom>cnfSupportedRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE0
+		<TD valign=bottom>TickTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD00
+		<TD valign=bottom>MaxLoadTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD01
+		<TD valign=bottom>DownloadBuffer
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD02
+		<TD valign=bottom>PRIIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD03
+		<TD valign=bottom>PRISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD04
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0A
+		<TD valign=bottom>NICSerialNumber
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0B
+		<TD valign=bottom>NICIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0C
+		<TD valign=bottom>MFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0D
+		<TD valign=bottom>CFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD10
+		<TD valign=bottom>ChannelList
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD11
+		<TD valign=bottom>RegulatoryDomains
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD13
+		<TD valign=bottom>CIS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD20
+		<TD valign=bottom>STAIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD21
+		<TD valign=bottom>STASupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD22
+		<TD valign=bottom>MFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD23
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD40
+		<TD valign=bottom>PortStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD41
+		<TD valign=bottom>CurrentSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD42
+		<TD valign=bottom>CurrentBSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD43
+		<TD valign=bottom>CommsQuality
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD44
+		<TD valign=bottom>CurrentTxRate
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD46
+		<TD valign=bottom>CurrentScaleThresholds
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD80
+		<TD valign=bottom>CurrentTxRate1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD81
+		<TD valign=bottom>CurrentTxRate2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD82
+		<TD valign=bottom>CurrentTxRate3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD83
+		<TD valign=bottom>CurrentTxRate4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD84
+		<TD valign=bottom>CurrentTxRate5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD85
+		<TD valign=bottom>CurrentTxRate6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC2
+		<TD valign=bottom>CurrentPowerState
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC6
+		<TD valign=bottom>SupportedDataRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ACKFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC85
+		<TD valign=bottom>PromiscuousMode
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1-32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [2]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address10
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address11
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address12
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address13
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address14
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address15
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address16
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address17
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address18
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address19
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address20
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address21
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address22
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address23
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address24
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address25
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address26
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address27
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address28
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address29
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address2
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address30
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address31
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address3
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address4
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address5
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address6
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address7
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address8
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address9
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AntennaListIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD47
+		<TD valign=bottom>ProtocolRspTime
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AssociationResponseTimeOut
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStatus
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithm1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB2
+		<TD valign=bottom>cnfAuthenticationRspTO
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationResponseTimeOut
+		<TD valign=bottom>API
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD45
+		<TD valign=bottom>CurrentBeaconInterval
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11BeaconPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAModeSupported
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPMaxDuration
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4C
+		<TD valign=bottom>CFPollable
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CFPollable
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityEnabled
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityPresent
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC3
+		<TD valign=bottom>CCAMode
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentCCAMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC1
+		<TD valign=bottom>CurrentChannel
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentChannel
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentChannelNumber
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentPattern
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRegDomain
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentSet
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxPowerLevel
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC10
+		<TD valign=bottom>cnfOwnDTIMPeriod
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11DTIMPeriod
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredBSSType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [3]
+	<TR>
+		<TD valign=bottom>FC02
+		<TD valign=bottom>cnfDesiredSSID
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredSSID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySelectionRx
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySupport
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11EDThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ExcludeUnencrypted
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FCSErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FailedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC82
+		<TD valign=bottom>FragmentationThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FragmentationThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FrameDuplicateCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11HopTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD49
+		<TD valign=bottom>LongRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11LongRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD86
+		<TD valign=bottom>OwnMACAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MACAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ManufacturerID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD4B
+		<TD valign=bottom>MaxReceiveLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxReceiveLifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4A
+		<TD valign=bottom>MaxTransmitLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxTransmitMSDULifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MediumOccupancyLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastReceivedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastTransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MultipleRetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11NumberSupportedPowerLevels
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC84
+		<TD valign=bottom>TxRateControl
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11OperationalRateSet
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PBCCOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC0
+		<TD valign=bottom>PHYType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PHYType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FC09
+		<TD valign=bottom>cnfPMEnabled
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PowerManagementMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PrivacyInvoked
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4F
+		<TD valign=bottom>PrivacyOptionImplemented
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PrivacyOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ProductID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSSuccessCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC83
+		<TD valign=bottom>RTSThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ReceivedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ShortPreambleOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD48
+		<TD valign=bottom>ShortRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ShortRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FC01
+		<TD valign=bottom>cnfOwnMACAddress
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11StationID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD12
+		<TD valign=bottom>TempType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11TempType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel1
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel7
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel8
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC24
+		<TD valign=bottom>cnfDefaultKey0
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey0
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC25
+		<TD valign=bottom>cnfDefaultKey1
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey1
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC26
+		<TD valign=bottom>cnfDefaultKey2
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey2
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC27
+		<TD valign=bottom>cnfDefaultKey3
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey3
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC23
+		<TD valign=bottom>cnfWEPDefaultKeyID
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKeyID
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPExcludedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPICVErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingLength
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingWEPOn
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPUndecryptableCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+</TABLE>
+</CENTER>
+</BODY>
+</HTML>
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt
new file mode 100644
index 0000000..eeac25b
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-mib.txt
@@ -0,0 +1,510 @@
+doc/prism2/ridlist-mib.txt
+ Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.
+
+
+
+API - The document source for this RID is the API Enhancements Document
+
+PRO - The document source for this RID is the CW10 Programmer's Manual
+
+[1] - read mode is implemented internally within the driver
+
+[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+
+[3] - This RID is implemented internally in the driver
+
+=======================================================================================================
+PRISM2 | PRISM2               |     |     |                                       |     |  
+RID    | RID                  |     |     |                                       | Doc |  
+VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented?
+=======================================================================================================
+F200   | LinkStatus           |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F201   | AssociationStatus    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F202   | AuthenticationReques |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F203   | PowerSaveUserCount   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2A   | cnfAuthentication    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2B   | cnfMaxAssociatedStat |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2C   | cnfTxControl         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2D   | cnfRoamingMode       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2E   | cnfHostAuthenticatio |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC30   | cnfRcvCrcError       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC31   | cnfMMLife            |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC32   | cnfAltRetryCnt       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC33   | cnfBeaconInterval    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC34   | cnfAPPCFInfo         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC35   | cnfSTAPCFInfo        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9E   | TxRateControl0       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9F   | TxRateControl1       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA0   | TxRateControl2       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA1   | TxRateControl3       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA2   | TxRateControl4       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA3   | TxRateControl5       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA4   | TxRateControl6       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB0   | cnfShortPreamble     |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB1   | cnfExcludeLongPreamb |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB3   | cnfBasicRates        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE1   | ScanRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE2   | JoinRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE3   | authenticateStation  |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE4   | ChannelInfoRequest   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F101   | ScanResults          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F102   | ChannelInfoResults   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC00   | cnfPortType          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC03   | cnfOwnChannel        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC06   | cnfSystemScale       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC07   | cnfMaxDataLength     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC08   | cnfWDSAddress        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0A   | cnfPMEPS             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0B   | cnfMulticastReceive  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0E   | cnfOwnName           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC11   | cnfWDSAddress1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC12   | cnfWDSAddress2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC13   | cnfWDSAddress3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC14   | cnfWDSAddress4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC15   | cnfWDSAddress5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC16   | cnfWDSAddress6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC81   | CreateIBSS           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC90   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC91   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC92   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC93   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC94   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC95   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC96   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC97   | RTSThreshold0        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC98   | RTSThreshold1        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC99   | RTSThreshold2        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9A   | RTSThreshold3        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9B   | RTSThreshold4        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9C   | RTSThreshold5        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9D   | RTSThreshold6        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCB4   | cnfSupportedRates    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE0   | TickTime             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD00   | MaxLoadTime          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD01   | DownloadBuffer       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD02   | PRIIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD03   | PRISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD04   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0A   | NICSerialNumber      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0B   | NICIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0C   | MFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0D   | CFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD10   | ChannelList          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD11   | RegulatoryDomains    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD13   | CIS                  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD20   | STAIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD21   | STASupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD22   | MFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD23   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD40   | PortStatus           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD41   | CurrentSSID          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD42   | CurrentBSSID         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD43   | CommsQuality         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD44   | CurrentTxRate        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD46   | CurrentScaleThreshol |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD80   | CurrentTxRate1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD81   | CurrentTxRate2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD82   | CurrentTxRate3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD83   | CurrentTxRate4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD84   | CurrentTxRate5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD85   | CurrentTxRate6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC2   | CurrentPowerState    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC6   | SupportedDataRates   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ACKFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AntennaListIndex                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R
+-------------------------------------------------------------------------------------------------------
+FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAModeSupported                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityEnabled            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityPresent            | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentChannelNumber             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentDwellTime                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentIndex                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentPattern                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRegDomain                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentSet                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxPowerLevel              | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3]
+-------------------------------------------------------------------------------------------------------
+FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateReason               | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateStation              | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySelectionRx             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySupport                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11EDThreshold                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FCSErrorCount                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FailedCount                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FrameDuplicateCount              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11HopTime                          | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ManufacturerID                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MaxDwellTime                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MultipleRetryCount               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11PBCCOptionImplemented            | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ProductID                        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSSuccessCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ReceivedFragmentCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportIndex           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportValue           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RetryCount                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R
+-------------------------------------------------------------------------------------------------------
+FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedRxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedTxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFragmentCount         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFrameCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel1                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel2                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel3                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel4                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel5                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel6                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel7                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel8                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPExcludedCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPICVErrorCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingAddress             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingIndex               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingLength              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingValue               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPUndecryptableCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html
new file mode 100644
index 0000000..b6ebacb
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.html
@@ -0,0 +1,2001 @@
+<HTML>
+<HEAD>
+	<TITLE>802.11 to PRISM2 RID Mapping List</TITLE>
+</HEAD>
+<BODY>
+<P>
+<B>doc/prism2/ridlist-rid.html<BR>Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.</B>
+</P>
+<P>
+<BR>API - The document source for this RID is the API Enhancements Document
+</P>
+<P>
+<BR>PRO - The document source for this RID is the CW10 Programmer's Manual
+</P>
+<P>
+<BR>[1] - read mode is implemented internally within the driver
+</P>
+<P>
+<BR>[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+</P>
+<P>
+<BR>[3] - This RID is implemented internally in the driver
+</P>
+<P>
+<BR>
+</P>
+<P>
+<CENTER>
+<TABLE border=1>
+	<TR>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>VALUE</B>
+		<TD valign=bottom><B>PRISM2<BR>RID<BR>NAME</B>
+		<TD valign=bottom><B>STA</B>
+		<TD valign=bottom><B>AP</B>
+		<TD valign=bottom><B>802.11 MibItem Name</B>
+		<TD valign=bottom><B>Doc<BR>Src</B>
+		<TD valign=bottom><B>Implemented?</B>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ACKFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AntennaListIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticateFailStatus
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithm6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAModeSupported
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogCountMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMax
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CCAWatchdogTimerMin
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityEnabled
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ChannelAgilityPresent
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentChannelNumber
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentPattern
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRegDomain
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentSet
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CurrentTxPowerLevel
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DeauthenticateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredBSSType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateReason
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DisassociateStation
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R [3]
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySelectionRx
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DiversitySupport
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11EDThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FCSErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FailedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FrameDuplicateCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11HopTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ManufacturerID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxDwellTime
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastReceivedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MulticastTransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MultipleRetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11NumberSupportedPowerLevels
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PBCCOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ProductID
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSFailureCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSSuccessCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ReceivedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RegDomainsSupportValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RetryCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11ShortPreambleOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesRxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedDataRatesTxValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedRxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11SupportedTxAntenna
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFragmentCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TransmittedFrameCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel1
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel2
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel3
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel4
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel5
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel6
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel7
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11TxPowerLevel8
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPExcludedCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPICVErrorCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingIndex
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingLength
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingValue
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPKeyMappingWEPOn
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11WEPUndecryptableCount
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F101
+		<TD valign=bottom>ScanResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F102
+		<TD valign=bottom>ChannelInfoResults
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F200
+		<TD valign=bottom>LinkStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F201
+		<TD valign=bottom>AssociationStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F202
+		<TD valign=bottom>AuthenticationRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>F203
+		<TD valign=bottom>PowerSaveUserCount
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC00
+		<TD valign=bottom>cnfPortType
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC01
+		<TD valign=bottom>cnfOwnMACAddress
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11StationID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC02
+		<TD valign=bottom>cnfDesiredSSID
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11DesiredSSID
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC03
+		<TD valign=bottom>cnfOwnChannel
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC04
+		<TD valign=bottom>cnfOwnSSID IBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC05
+		<TD valign=bottom>cnfOwnATIMWindow
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC06
+		<TD valign=bottom>cnfSystemScale
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC07
+		<TD valign=bottom>cnfMaxDataLength
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC08
+		<TD valign=bottom>cnfWDSAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC09
+		<TD valign=bottom>cnfPMEnabled
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PowerManagementMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC0A
+		<TD valign=bottom>cnfPMEPS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0B
+		<TD valign=bottom>cnfMulticastReceive
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0C
+		<TD valign=bottom>cnfMaxSleepDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0D
+		<TD valign=bottom>cnfPMHoldoverDuration
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC0E
+		<TD valign=bottom>cnfOwnName
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC10
+		<TD valign=bottom>cnfOwnDTIMPeriod
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11DTIMPeriod
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC11
+		<TD valign=bottom>cnfWDSAddress1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC12
+		<TD valign=bottom>cnfWDSAddress2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC13
+		<TD valign=bottom>cnfWDSAddress3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC14
+		<TD valign=bottom>cnfWDSAddress4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC15
+		<TD valign=bottom>cnfWDSAddress5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC16
+		<TD valign=bottom>cnfWDSAddress6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC17
+		<TD valign=bottom>cnfMulticastPMBuffering
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC23
+		<TD valign=bottom>cnfWEPDefaultKeyID
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKeyID
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC24
+		<TD valign=bottom>cnfDefaultKey0
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey0
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC25
+		<TD valign=bottom>cnfDefaultKey1
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey1
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC26
+		<TD valign=bottom>cnfDefaultKey2
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey2
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC27
+		<TD valign=bottom>cnfDefaultKey3
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11WEPDefaultKey3
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ExcludeUnencrypted
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC28
+		<TD valign=bottom>cnfWEPFlags
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PrivacyInvoked
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC29
+		<TD valign=bottom>cnfWEPKeyMappingTable
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2A
+		<TD valign=bottom>cnfAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2B
+		<TD valign=bottom>cnfMaxAssociatedStations
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2C
+		<TD valign=bottom>cnfTxControl
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2D
+		<TD valign=bottom>cnfRoamingMode
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC2E
+		<TD valign=bottom>cnfHostAuthentication
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC30
+		<TD valign=bottom>cnfRcvCrcError
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC31
+		<TD valign=bottom>cnfMMLife
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC32
+		<TD valign=bottom>cnfAltRetryCnt
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC33
+		<TD valign=bottom>cnfBeaconInterval
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC34
+		<TD valign=bottom>cnfAPPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC35
+		<TD valign=bottom>cnfSTAPCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address10
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address11
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address12
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address13
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address14
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address15
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address16
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address17
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address18
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address19
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address20
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address21
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address22
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address23
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address24
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address25
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address26
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address27
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address28
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address29
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address2
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address30
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address31
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address3
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address4
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address5
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address6
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address7
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address8
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC80
+		<TD valign=bottom>GroupAddresses
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address9
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [1]
+	<TR>
+		<TD valign=bottom>FC81
+		<TD valign=bottom>CreateIBSS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC82
+		<TD valign=bottom>FragmentationThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11FragmentationThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC83
+		<TD valign=bottom>RTSThreshold
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11RTSThreshold
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC84
+		<TD valign=bottom>TxRateControl
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11OperationalRateSet
+		<TD valign=bottom>API
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FC85
+		<TD valign=bottom>PromiscuousMode
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11Address1-32
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W [2]
+	<TR>
+		<TD valign=bottom>FC90
+		<TD valign=bottom>FragmentationThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC91
+		<TD valign=bottom>FragmentationThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC92
+		<TD valign=bottom>FragmentationThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC93
+		<TD valign=bottom>FragmentationThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC94
+		<TD valign=bottom>FragmentationThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC95
+		<TD valign=bottom>FragmentationThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC96
+		<TD valign=bottom>FragmentationThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC97
+		<TD valign=bottom>RTSThreshold0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC98
+		<TD valign=bottom>RTSThreshold1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC99
+		<TD valign=bottom>RTSThreshold2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9A
+		<TD valign=bottom>RTSThreshold3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9B
+		<TD valign=bottom>RTSThreshold4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9C
+		<TD valign=bottom>RTSThreshold5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9D
+		<TD valign=bottom>RTSThreshold6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9E
+		<TD valign=bottom>TxRateControl0
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FC9F
+		<TD valign=bottom>TxRateControl1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA0
+		<TD valign=bottom>TxRateControl2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA1
+		<TD valign=bottom>TxRateControl3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA2
+		<TD valign=bottom>TxRateControl4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA3
+		<TD valign=bottom>TxRateControl5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCA4
+		<TD valign=bottom>TxRateControl6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB0
+		<TD valign=bottom>cnfShortPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB1
+		<TD valign=bottom>cnfExcludeLongPreamble
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB2
+		<TD valign=bottom>cnfAuthenticationRspTO
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11AuthenticationResponseTimeOut
+		<TD valign=bottom>API
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FCB3
+		<TD valign=bottom>cnfBasicRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCB4
+		<TD valign=bottom>cnfSupportedRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE0
+		<TD valign=bottom>TickTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE1
+		<TD valign=bottom>ScanRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE2
+		<TD valign=bottom>JoinRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE3
+		<TD valign=bottom>authenticateStation
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FCE4
+		<TD valign=bottom>ChannelInfoRequest
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>API
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD00
+		<TD valign=bottom>MaxLoadTime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD01
+		<TD valign=bottom>DownloadBuffer
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD02
+		<TD valign=bottom>PRIIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD03
+		<TD valign=bottom>PRISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD04
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0A
+		<TD valign=bottom>NICSerialNumber
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0B
+		<TD valign=bottom>NICIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0C
+		<TD valign=bottom>MFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD0D
+		<TD valign=bottom>CFISupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD10
+		<TD valign=bottom>ChannelList
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD11
+		<TD valign=bottom>RegulatoryDomains
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD12
+		<TD valign=bottom>TempType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11TempType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD13
+		<TD valign=bottom>CIS
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD20
+		<TD valign=bottom>STAIdentity
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD21
+		<TD valign=bottom>STASupRange
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD22
+		<TD valign=bottom>MFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD23
+		<TD valign=bottom>CFIActRanges
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD40
+		<TD valign=bottom>PortStatus
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD41
+		<TD valign=bottom>CurrentSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD42
+		<TD valign=bottom>CurrentBSSID
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD43
+		<TD valign=bottom>CommsQuality
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD44
+		<TD valign=bottom>CurrentTxRate
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD45
+		<TD valign=bottom>CurrentBeaconInterval
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11BeaconPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD46
+		<TD valign=bottom>CurrentScaleThresholds
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD47
+		<TD valign=bottom>ProtocolRspTime
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AssociationResponseTimeOut
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD48
+		<TD valign=bottom>ShortRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11ShortRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD49
+		<TD valign=bottom>LongRetryLimit
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11LongRetryLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4A
+		<TD valign=bottom>MaxTransmitLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxTransmitMSDULifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4B
+		<TD valign=bottom>MaxReceiveLifetime
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11MaxReceiveLifetime
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4C
+		<TD valign=bottom>CFPollable
+		<TD valign=bottom>X
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11CFPollable
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithm1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4D
+		<TD valign=bottom>AuthenticationAlgorithms
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11AuthenticationAlgorithmsEnable1
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD4F
+		<TD valign=bottom>PrivacyOptionImplemented
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>dot11PrivacyOptionImplemented
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD80
+		<TD valign=bottom>CurrentTxRate1
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD81
+		<TD valign=bottom>CurrentTxRate2
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD82
+		<TD valign=bottom>CurrentTxRate3
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD83
+		<TD valign=bottom>CurrentTxRate4
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD84
+		<TD valign=bottom>CurrentTxRate5
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD85
+		<TD valign=bottom>CurrentTxRate6
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FD86
+		<TD valign=bottom>OwnMACAddress
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MACAddress
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R/W
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPMaxDuration
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CFPPeriod
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FD87
+		<TD valign=bottom>PCFInfo
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11MediumOccupancyLimit
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC0
+		<TD valign=bottom>PHYType
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11PHYType
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC1
+		<TD valign=bottom>CurrentChannel
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentChannel
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC2
+		<TD valign=bottom>CurrentPowerState
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+	<TR>
+		<TD valign=bottom>FDC3
+		<TD valign=bottom>CCAMode
+		<TD valign=bottom>X
+		<TD valign=bottom>X
+		<TD valign=bottom>dot11CurrentCCAMode
+		<TD valign=bottom>PRO
+		<TD valign=bottom>R
+	<TR>
+		<TD valign=bottom>FDC6
+		<TD valign=bottom>SupportedDataRates
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom><PRE>   </PRE>
+		<TD valign=bottom>PRO
+		<TD valign=bottom><PRE>   </PRE>
+</TABLE>
+</CENTER>
+</BODY>
+</HTML>
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt
new file mode 100644
index 0000000..02f3063
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/prism2/ridlist-rid.txt
@@ -0,0 +1,510 @@
+doc/prism2/ridlist-rid.txt
+ Copyright (C) 2000 AbsoluteValue Systems, Inc. All Rights Reserved.
+
+
+
+API - The document source for this RID is the API Enhancements Document
+
+PRO - The document source for this RID is the CW10 Programmer's Manual
+
+[1] - read mode is implemented internally within the driver
+
+[2] - This RID is implemented internally in the driver during implementation of the Group Addresses RID (0xFC80)
+
+[3] - This RID is implemented internally in the driver
+
+=======================================================================================================
+PRISM2 | PRISM2               |     |     |                                       |     |  
+RID    | RID                  |     |     |                                       | Doc |  
+VALUE  | NAME                 | STA | AP  | MibItem NAME                          | Src | Implemented?
+=======================================================================================================
+       |                      |     |     | dot11ACKFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AntennaListIndex                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStation          | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticateFailStatus           | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm2         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm3         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm4         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm5         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithm6         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable2  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable3  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable4  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable5  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11AuthenticationAlgorithmsEnable6  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAModeSupported                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogCountMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMax              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CCAWatchdogTimerMin              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityEnabled            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ChannelAgilityPresent            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentChannelNumber             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentDwellTime                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentIndex                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentPattern                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRegDomain                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentRxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentSet                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxAntenna                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11CurrentTxPowerLevel              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateReason             | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DeauthenticateStation            | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DesiredBSSType                   | PRO | R/W [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateReason               | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DisassociateStation              | PRO | R [3]
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySelectionRx             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11DiversitySupport                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11EDThreshold                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FCSErrorCount                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FailedCount                      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11FrameDuplicateCount              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11HopTime                          | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ManufacturerID                   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MaxDwellTime                     | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastReceivedFrameCount      | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MulticastTransmittedFrameCount   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11MultipleRetryCount               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11NumberSupportedPowerLevels       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11PBCCOptionImplemented            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ProductID                        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSFailureCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RTSSuccessCount                  | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ReceivedFragmentCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportIndex           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RegDomainsSupportValue           | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11RetryCount                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11ShortPreambleOptionImplemented   | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesRxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxIndex        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedDataRatesTxValue        | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedRxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11SupportedTxAntenna               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFragmentCount         | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TransmittedFrameCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel1                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel2                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel3                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel4                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel5                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel6                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel7                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11TxPowerLevel8                    | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPExcludedCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPICVErrorCount                 | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingAddress             | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingIndex               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingLength              | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingValue               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPKeyMappingWEPOn               | PRO | 
+-------------------------------------------------------------------------------------------------------
+       |                      |     |     | dot11WEPUndecryptableCount            | PRO | 
+-------------------------------------------------------------------------------------------------------
+F101   | ScanResults          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F102   | ChannelInfoResults   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+F200   | LinkStatus           |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F201   | AssociationStatus    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F202   | AuthenticationReques |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+F203   | PowerSaveUserCount   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC00   | cnfPortType          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC01   | cnfOwnMACAddress     | X   |     | dot11StationID                        | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC02   | cnfDesiredSSID       | X   |     | dot11DesiredSSID                      | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC03   | cnfOwnChannel        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC04   | cnfOwnSSID IBSS      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC05   | cnfOwnATIMWindow     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC06   | cnfSystemScale       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC07   | cnfMaxDataLength     |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC08   | cnfWDSAddress        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC09   | cnfPMEnabled         | X   |     | dot11PowerManagementMode              | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC0A   | cnfPMEPS             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0B   | cnfMulticastReceive  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0C   | cnfMaxSleepDuration  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0D   | cnfPMHoldoverDuratio |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC0E   | cnfOwnName           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC10   | cnfOwnDTIMPeriod     |     | X   | dot11DTIMPeriod                       | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC11   | cnfWDSAddress1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC12   | cnfWDSAddress2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC13   | cnfWDSAddress3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC14   | cnfWDSAddress4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC15   | cnfWDSAddress5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC16   | cnfWDSAddress6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC17   | cnfMulticastPMBuffer |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC23   | cnfWEPDefaultKeyID   | X   | X   | dot11WEPDefaultKeyID                  | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC24   | cnfDefaultKey0       | X   | X   | dot11WEPDefaultKey0                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC25   | cnfDefaultKey1       | X   | X   | dot11WEPDefaultKey1                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC26   | cnfDefaultKey2       | X   | X   | dot11WEPDefaultKey2                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC27   | cnfDefaultKey3       | X   | X   | dot11WEPDefaultKey3                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11ExcludeUnencrypted               | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC28   | cnfWEPFlags          | X   | X   | dot11PrivacyInvoked                   | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC29   | cnfWEPKeyMappingTabl |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2A   | cnfAuthentication    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2B   | cnfMaxAssociatedStat |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2C   | cnfTxControl         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2D   | cnfRoamingMode       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC2E   | cnfHostAuthenticatio |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC30   | cnfRcvCrcError       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC31   | cnfMMLife            |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC32   | cnfAltRetryCnt       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC33   | cnfBeaconInterval    |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC34   | cnfAPPCFInfo         |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC35   | cnfSTAPCFInfo        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address10                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address11                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address12                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address13                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address14                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address15                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address16                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address17                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address18                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address19                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address1                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address20                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address21                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address22                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address23                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address24                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address25                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address26                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address27                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address28                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address29                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address2                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address30                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address31                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address32                        | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address3                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address4                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address5                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address6                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address7                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address8                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC80   | GroupAddresses       | X   |     | dot11Address9                         | PRO | R/W [1]
+-------------------------------------------------------------------------------------------------------
+FC81   | CreateIBSS           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC82   | FragmentationThresho | X   |     | dot11FragmentationThreshold           | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC83   | RTSThreshold         | X   |     | dot11RTSThreshold                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FC84   | TxRateControl        | X   |     | dot11OperationalRateSet               | API | R/W
+-------------------------------------------------------------------------------------------------------
+FC85   | PromiscuousMode      | X   |     | dot11Address1-32                      | PRO | R/W [2]
+-------------------------------------------------------------------------------------------------------
+FC90   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC91   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC92   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC93   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC94   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC95   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC96   | FragmentationThresho |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC97   | RTSThreshold0        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC98   | RTSThreshold1        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC99   | RTSThreshold2        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9A   | RTSThreshold3        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9B   | RTSThreshold4        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9C   | RTSThreshold5        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9D   | RTSThreshold6        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FC9E   | TxRateControl0       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FC9F   | TxRateControl1       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA0   | TxRateControl2       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA1   | TxRateControl3       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA2   | TxRateControl4       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA3   | TxRateControl5       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCA4   | TxRateControl6       |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB0   | cnfShortPreamble     |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB1   | cnfExcludeLongPreamb |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB2   | cnfAuthenticationRsp | X   |     | dot11AuthenticationResponseTimeOut    | API | R
+-------------------------------------------------------------------------------------------------------
+FCB3   | cnfBasicRates        |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCB4   | cnfSupportedRates    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE0   | TickTime             |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FCE1   | ScanRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE2   | JoinRequest          |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE3   | authenticateStation  |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FCE4   | ChannelInfoRequest   |     |     |                                       | API | 
+-------------------------------------------------------------------------------------------------------
+FD00   | MaxLoadTime          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD01   | DownloadBuffer       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD02   | PRIIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD03   | PRISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD04   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0A   | NICSerialNumber      |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0B   | NICIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0C   | MFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD0D   | CFISupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD10   | ChannelList          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD11   | RegulatoryDomains    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD12   | TempType             | X   | X   | dot11TempType                         | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD13   | CIS                  |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD20   | STAIdentity          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD21   | STASupRange          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD22   | MFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD23   | CFIActRanges         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD40   | PortStatus           |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD41   | CurrentSSID          |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD42   | CurrentBSSID         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD43   | CommsQuality         |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD44   | CurrentTxRate        |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD45   | CurrentBeaconInterva | X   | X   | dot11BeaconPeriod                     | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD46   | CurrentScaleThreshol |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD47   | ProtocolRspTime      | X   | X   | dot11AssociationResponseTimeOut       | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD48   | ShortRetryLimit      | X   | X   | dot11ShortRetryLimit                  | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD49   | LongRetryLimit       | X   | X   | dot11LongRetryLimit                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4A   | MaxTransmitLifetime  |     |     | dot11MaxTransmitMSDULifetime          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4B   | MaxReceiveLifetime   |     |     | dot11MaxReceiveLifetime               | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4C   | CFPollable           | X   |     | dot11CFPollable                       | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithm1         | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD4D   | AuthenticationAlgori | X   | X   | dot11AuthenticationAlgorithmsEnable1  | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD4F   | PrivacyOptionImpleme |     |     | dot11PrivacyOptionImplemented         | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD80   | CurrentTxRate1       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD81   | CurrentTxRate2       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD82   | CurrentTxRate3       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD83   | CurrentTxRate4       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD84   | CurrentTxRate5       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD85   | CurrentTxRate6       |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FD86   | OwnMACAddress        |     | X   | dot11MACAddress                       | PRO | R/W
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPMaxDuration                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11CFPPeriod                        | PRO | R
+-------------------------------------------------------------------------------------------------------
+FD87   | PCFInfo              |     | X   | dot11MediumOccupancyLimit             | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC0   | PHYType              | X   | X   | dot11PHYType                          | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC1   | CurrentChannel       | X   | X   | dot11CurrentChannel                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC2   | CurrentPowerState    |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
+FDC3   | CCAMode              | X   | X   | dot11CurrentCCAMode                   | PRO | R
+-------------------------------------------------------------------------------------------------------
+FDC6   | SupportedDataRates   |     |     |                                       | PRO | 
+-------------------------------------------------------------------------------------------------------
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt
new file mode 100644
index 0000000..b66a571
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/releasepolicy.txt
@@ -0,0 +1,37 @@
+linux-wlan Release Policy/Checklist
+--------------------------------------------------
+
+[MSM Note: Here's a _quick_ attempt at a release policy for linux-wlan.
+           It's very brief and relatively simple.  I'm open to suggestions
+           for improvement.
+]
+
+The following steps should be taken each time a new release of linux-wlan
+is ready for distribution:
+
+0) Make sure the current code builds, loads, associates, and ftps 
+   cleanly on all 3 AVS lab build boxes.
+1) Assign an W.X.Y-preZ version number.
+2) Update the version number in config.in.
+3) Tag the files.
+4) Build the tarball. (Bonehead! double check next time that the tarball
+   and config.in version number match, eh?)
+5) Release to ftp.
+6) Announce on linux-wlan-annouce as a feature frozen 'pre' release.
+7) Announce on freshmeat (Pavel? ;-)
+8) Allow at least 24 hours for bug reports and (hopefully) bugfix patches.
+9a) After 24 hour period, if bugfix patches and/or local fixes to bug 
+    reports are present, apply patches and GOTO step 0.
+9b) If no show-stopper bug-reports and/or patches are received during the
+    'pre' release period GOTO step 10.
+10) Make sure the current code builds, loads, associates, and ftps 
+    cleanly on all 3 AVS lab build boxes.
+11) Assign an W.X.Y version number.
+12) Update the version number in config.in.
+13) Tag the files.
+14) Build the tarball. (Bonehead! double check next time that the tarball
+    and config.in version number match, eh?)
+15) Release to ftp.
+16) Announce on linux-wlan-annouce as a final W.X.Y release.
+17) Announce on freshmeat.
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes
new file mode 100644
index 0000000..399a2e4
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/doc/rh71notes
@@ -0,0 +1,61 @@
+[MSM]: Here's an old e-mail.  I'm not sure if it's in the list archives
+so I figured I'd save it here.
+
+It may be useful for those using RH71.
+
+Date: Wed, 25 Apr 2001 16:03:20 +0800
+From: Leonard Ye <leonardye@yahoo.com>
+Reply-To: linux-wlan-user@absoval.com
+To: linux-wlan-user@absoval.com
+Subject: [lwlan-user]: REDHAT 7.1 + wlan-ng 0.1.18 HOWTO
+
+Hi all,
+
+Just get the wlan-ng 0.1.18pre11 working on my redhat 7.1 and I would like 
+to share the experiences with you.
+
+Assumption:
+         a default installation of redhat 7.1 with 
+kernel-pcmcia-cs-3.1.24-2.rpm installed
+
+Four steps as followings:
+
+1) Get kernel source ready
+install kernel-source-2.4.2-2 if you don't have the kernel source ready on 
+the machine
+copy a suitable configuration file from the configs directory to .config
+make dep
+
+2) Get pcmcia-cs header files ready
+download the pcmcia-cs-3.1.24.tar.gz package
+unzip it at appropriate place
+make config
+         when you were asked what kind of kernel configuration you want to 
+use, select "1"
+make all
+DON'T "make install"
+
+3) compile the wlan-ng-0.1.18pre11 code
+download the linux-wlan-ng-0.1.18pre11.tar.gz
+unzip it at appropriate place
+make config
+         select build-in kernel support
+make all
+make install
+
+4) some minor configuration
+edit /etc/pcmcia/config.opts to comment out the card definition for 
+"Intersil PRISM2 11 .."
+edit /etc/wlan-ng.opts
+         change string p2RoamingMode to p2CnfRoamingMode
+         set appropriate SSID for variable DesiredSSID
+create an ifcfg-wlan0 file in /etc/sysconfig/network-scripts
+
+Ok, your machine should be able to work as a STA using 
+wlan-ng-0.1.18pre11.  If you have experience with enabling AP mode, it 
+shouldn't be a problem for you enable it in redhat 7.1
+
+Regards,
+Leonard Ye
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries
new file mode 100644
index 0000000..f9c4a3a
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/entries
@@ -0,0 +1,139 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2008-06-24T19:10:11.002401Z
+1863
+pizza
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+wlan
+dir
+
+udev
+dir
+
+rc.wlan
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+bed6984515bc8c1e44bd0914116e752d
+2003-05-06T02:35:45.000000Z
+1390
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1776
+
+pcmcia
+dir
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+efbcbef4f410942b5e22495d20536b49
+2005-01-26T22:01:07.661267Z
+1678
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2640
+
+wlan.agent
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+2048f9a34ef178972ac90cc8a2fbb6ce
+2006-01-18T18:58:45.747036Z
+1765
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1643
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/rc.wlan.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/prop-base/wlan.agent.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..7d46fd2
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,67 @@
+# etc/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+DIRS= pcmcia wlan
+
+all:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d all; done
+
+clean:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean; done
+
+install:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d install; done
+	if [ ! -d $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d ]; then \
+		mkdir -p $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d; \
+	fi; \
+	cp rc.wlan $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan; \
+	chmod 755 $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan ;\
+	if [ -d $(TARGET_ROOT_ON_HOST)/etc/hotplug ]; then \
+		cp wlan.agent $(TARGET_ROOT_ON_HOST)/etc/hotplug; \
+		rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/usb/prism2_usb; \
+                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_pci; \
+                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_plx; \
+	fi
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base
new file mode 100644
index 0000000..70e0c54
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/rc.wlan.svn-base
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+# rc.wlan 
+#
+# chkconfig: 2345 9 91 
+# description: Activates/Configures/Disables the devices
+
+if [ ! -f /etc/wlan/shared ] ; then
+    echo "/etc/wlan/shared not present"
+    exit 0
+fi
+
+. /etc/wlan/shared
+
+if [ -f /etc/init.d/functions ] ; then
+	. /etc/init.d/functions
+fi
+
+usage()
+{
+    echo "Usage: $0 {start|stop|status|restart|reload|force-reload}"
+}
+
+
+if [ $# -lt 1 ] ; then usage ; exit 1 ; fi
+action=$1
+
+case "$action" in
+
+start)
+	# This will implicitly fire off wland via hotplug.
+	echo -n "Starting WLAN Devices: "
+	if ! $MODPROBE p80211; then
+		echo "Failed to load p80211.o."
+		exit 1
+	fi
+
+	# NOTE: We don't explicitly insmod the card driver here.  The
+	#  best thing to do is to specify an alias in /etc/modules.conf.
+
+	for DEVICE in $WLAN_DEVICES; do
+	    $MODPROBE $DEVICE
+	    # if we don't have hotplug.. do things the old-fashioned way.
+	    if [ $HAS_HOTPLUG = 'n' ] ; then
+		wlan_bring_it_up $DEVICE
+	    fi
+	done
+
+	# And hotplug will take care of the rest, namely device 
+	# initialization and whatnot.
+
+        if [ -f /etc/init.d/functions ] ; then
+                echo_success
+        else
+                echo
+        fi
+
+	;;
+
+stop)
+	echo -n "Shutting Down WLAN Devices: "
+	echo -n "Shutting Down WLAN Devices: "
+	# Do a reset on each device to make sure none of them are still
+	#  trying to generate interrupts.
+	for DEVICE in $WLAN_DEVICES; do
+		wlan_disable $DEVICE
+		ifconfig $DEVICE down
+		$MODPROBE -r $DEVICE
+	done
+	
+	# remove p80211, which will implictly kill wland.
+	$MODPROBE -r p80211
+
+        if [ -f /etc/init.d/functions ] ; then
+                echo_success
+        else
+                echo
+        fi
+	;;
+
+status)
+	status wland
+	;;
+
+restart|reload|force-reload)
+	$0 stop
+	$0 start
+	EXITCODE=$?
+	;;
+
+    *)
+	usage
+	;;
+
+esac
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base
new file mode 100644
index 0000000..7cf800a
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/.svn/text-base/wlan.agent.svn-base
@@ -0,0 +1,78 @@
+#!/bin/bash
+#
+# p80211/wlan hotplug policy agent.
+#
+# wlan hotplug params include:
+#	
+#	ACTION=%s [register|remove|shutdown|startup|suspend|resume]
+#	INTERFACE=%s
+#       NSDNAME=%s
+#
+
+cd /etc/hotplug
+. hotplug.functions
+
+#DEBUG=yes export DEBUG
+
+if [ "$INTERFACE" = "" ]; then
+    mesg Bad WLAN invocation: \$INTERFACE is not set
+    exit 1
+fi
+
+if [ "$NSDNAME" = "" ]; then
+    mesg Bad WLAN invocation: \$NSDNAME is not set
+    exit 1
+fi
+
+debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\)
+
+if [ "$NSDNAME" = "prism2_cs" ] ; then
+    mesg "WLAN Hotplug bypassed for pcmcia"
+    exit 0
+fi
+
+# load up the shared scripts
+if [ ! -f /etc/wlan/shared ] ; then
+    mesg "/etc/wlan/shared not present, aborting"
+    exit 1
+fi
+
+ECHO=mesg
+. /etc/wlan/shared
+
+case $ACTION in
+'register'|'resume')
+	debug_mesg WLAN $INTERFACE registered.
+	wlan_bring_it_up $INTERFACE $WLAN_WEXT
+	if [ $? = 0 ] ; then
+	    mesg WLAN $INTERFACE brought up successfully.
+		if [ -x /etc/wlan/pre-ifup ] ; then
+			# pre-ifup is presumed to call ifup if it
+			#  wants to...it may choose to skip it.
+			mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup"
+			/etc/wlan/pre-ifup $INTERFACE
+		else
+			mesg "WLAN bringing up layer 3+ with /sbin/ifup"
+			/sbin/ifdown $INTERFACE
+			/sbin/ifup $INTERFACE
+		fi
+	else
+	    mesg WLAN Could not bring up $INTERFACE
+	fi
+	# eventually invoke net.agent on $INTERFACE w/ REGISTER
+;;
+'remove'|'suspend')
+	debug_mesg WLAN $INTERFACE removed.
+;;
+'startup')
+	# kick off wland.
+	debug_mesg WLAN p80211 starting!
+;;
+'shutdown')
+	debug_mesg WLAN p80211 shutting down!
+;;
+*)
+    debug_mesg WLAN $ACTION event not supported
+    exit 1 ;;
+
+esac
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile
new file mode 100644
index 0000000..7d46fd2
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/Makefile
@@ -0,0 +1,67 @@
+# etc/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+DIRS= pcmcia wlan
+
+all:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d all; done
+
+clean:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d clean; done
+
+install:
+	set -e; for d in $(DIRS); do $(MAKE) -C $$d install; done
+	if [ ! -d $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d ]; then \
+		mkdir -p $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d; \
+	fi; \
+	cp rc.wlan $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan; \
+	chmod 755 $(TARGET_ROOT_ON_HOST)$(RC_DIR)/init.d/wlan ;\
+	if [ -d $(TARGET_ROOT_ON_HOST)/etc/hotplug ]; then \
+		cp wlan.agent $(TARGET_ROOT_ON_HOST)/etc/hotplug; \
+		rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/usb/prism2_usb; \
+                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_pci; \
+                rm -f $(TARGET_ROOT_ON_HOST)/etc/hotplug/pci/prism2_plx; \
+	fi
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries
new file mode 100644
index 0000000..4ab4851
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/entries
@@ -0,0 +1,130 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/pcmcia
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2005-06-29T21:15:21.828713Z
+1731
+solomon
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+wlan-ng
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+d5a7d6c0b613d87430f1f7dc14c5129f
+2004-01-29T18:38:28.000000Z
+1559
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5526
+
+wlan-ng.conf
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+4dad76e208aa4909b6698c76d74177ae
+2005-06-29T21:15:21.828713Z
+1731
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5443
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+63eb5c59ebcb43fa82b42bf331ec30cc
+2005-01-26T22:01:07.661267Z
+1678
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2849
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.conf.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/prop-base/wlan-ng.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..e9f612f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,81 @@
+# etc/pcmcia/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../../config.mk
+
+all:
+	@echo "Nothing to do"
+
+clean:
+	@echo "Nothing to do"
+	
+ifeq ($(PRISM2_PCMCIA), y)
+
+install:
+	mkdir -p $(TARGET_PCMCIA_DIR) ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng ]; then \
+		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng $(TARGET_PCMCIA_DIR)/wlan-ng.O ; \
+	fi ; \
+	cp wlan-ng $(TARGET_PCMCIA_DIR) ; \
+	chmod +x $(TARGET_PCMCIA_DIR)/wlan-ng ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf ]; then \
+		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf $(TARGET_PCMCIA_DIR)/wlan-ng.conf.O ; \
+	fi ; \
+	cp wlan-ng.conf $(TARGET_PCMCIA_DIR) ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/config ]; then \
+	if ! grep -sq 'source.*\.\/\*\.conf$$' $(TARGET_PCMCIA_DIR)/config ; then \
+		if ! grep -sq 'source \.\/wlan-ng.conf' $(TARGET_PCMCIA_DIR)/config ; then \
+			mv -f $(TARGET_PCMCIA_DIR)/config $(TARGET_PCMCIA_DIR)/config.O ; \
+			( echo "source ./wlan-ng.conf"; cat $(TARGET_PCMCIA_DIR)/config.O) > $(TARGET_PCMCIA_DIR)/config ; \
+		fi ; \
+	fi ; \
+	fi
+
+else
+
+install:
+	@echo "Nothing to do"
+
+endif
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base
new file mode 100644
index 0000000..25e5db9
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.conf.svn-base
@@ -0,0 +1,190 @@
+
+device "prism2_cs"
+   class "wlan-ng" module "prism2_cs"
+
+card "Intersil PRISM2 Reference Design 11Mb/s 802.11b WLAN Card"
+   version "INTERSIL", "HFA384x/IEEE"
+   bind "prism2_cs"
+
+card "Compaq WL100/200 11Mb/s 802.11b WLAN Card"
+   manfid 0x0138, 0x0002
+   bind "prism2_cs"
+
+card "Compaq iPaq HNW-100 11Mb/s 802.11b WLAN Card"
+   manfid 0x028a, 0x0002
+   bind "prism2_cs"
+
+card "Samsung SWL2000-N 11Mb/s 802.11b WLAN Card"
+   manfid 0x0250, 0x0002
+   bind "prism2_cs"
+
+card "Z-Com XI300 11Mb/s 802.11b WLAN Card"
+   manfid 0xd601, 0x0002
+   bind "prism2_cs"
+
+card "ZoomAir 4100 11Mb/s 802.11b WLAN Card"
+   version "ZoomAir 11Mbps High", "Rate wireless Networking"
+   bind "prism2_cs"
+
+card "Linksys WPC11 11Mbps 802.11b WLAN Card"
+   version "Instant Wireless ", " Network PC CARD", "Version 01.02"
+   bind "prism2_cs"
+
+card "Addtron AWP-100 11Mbps 802.11b WLAN Card"
+   version "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02"
+   bind "prism2_cs"
+
+card "D-Link DWL-650 11Mbps 802.11b WLAN Card"
+   version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "SMC 2632W 11Mbps 802.11b WLAN Card"
+   version "SMC", "SMC2632W", "Version 01.02"
+   bind "prism2_cs"
+
+card "BroMax Freeport 11Mbps 802.11b WLAN Card (Prism 2.5)"
+  version "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA"
+   bind "prism2_cs"
+   
+card "U.S. Robotics IEEE 802.11b PC-CARD"
+   version "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02"
+   bind "prism2_cs"
+
+card "Level-One WPC-0100"
+   version "Digital Data Communications", "WPC-0100"
+   bind "prism2_cs"
+
+card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 2.5)"
+   manfid 0x0274, 0x1612
+   bind "prism2_cs"
+
+card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 3)"
+   manfid 0x0274, 0x1613
+   bind "prism2_cs"
+
+card "corega K.K. Wireless LAN PCC-11"
+   version "corega K.K.", "Wireless LAN PCC-11"
+   bind "prism2_cs"
+
+card "corega K.K. Wireless LAN PCCA-11"
+   version "corega K.K.", "Wireless LAN PCCA-11"
+   bind "prism2_cs"
+
+card "CONTEC FLEXSCAN/FX-DDS110-PCC"
+   manfid 0xc001, 0x0008
+   bind "prism2_cs"
+
+card "PLANEX GeoWave/GW-NS110"
+   version "PLANEX", "GeoWave/GW-NS110"
+   bind "prism2_cs"
+
+card "Ambicom WL1100 11Mbps 802.11b WLAN Card"
+   version "OEM", "PRISM2 IEEE 802.11 PC-Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "LeArtery SYNCBYAIR 11Mbps 802.11b WLAN Card"
+   version "LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "Intermec MobileLAN 11Mbps 802.11b WLAN Card"
+   manfid 0x01ff, 0x0008
+   bind "prism2_cs"
+
+card "NETGEAR MA401 11Mbps 802.11 WLAN Card"
+   version "NETGEAR MA401 Wireless PC", "Card", "Version 01.00"
+   bind "prism2_cs"
+
+card "Intersil PRISM Freedom 11mbps 802.11 WLAN Card"
+   version "Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", "Eval-RevA"
+   bind "prism2_cs"
+
+card "OTC Wireless AirEZY 2411-PCC 11Mbps 802.11 WLAN Card"
+   version "OTC", "Wireless AirEZY 2411-PCC WLAN Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "Dynalink L11HDT 11Mbps 802.11 WLAN Card"
+   version "802.11", "11Mbps Wireless LAN Card", "v08C1", ""   
+   manfid 0xc250, 0x0002
+   bind "prism2_cs"
+
+card "PROXIM RangeLAN-DS/LAN PC CARD"
+   version "PROXIM", "RangeLAN-DS/LAN PC CARD"
+   bind "prism2_cs"
+
+card "ACTIONTEC PRISM Wireless LAN PC Card"
+   version "ACTIONTEC", "PRISM Wireless LAN PC Card", "0381", "RevA"
+   manfid 0x1668, 0x0101
+   bind "prism2_cs"
+
+card "3Com AirConnect 3CRWE737A"
+   version "3Com", "3CRWE737A AirConnect Wireless LAN PC Card"
+   bind "prism2_cs" 
+
+card "3Com AirConnect 3CRWE777A"
+   version "3Com", "3CRWE777A AirConnect Wireless LAN PCI Card"  
+   bind "prism2_cs" 
+
+card "ASUS WL-100 802.11b WLAN  PC Card"
+   version "ASUS", "802_11b_PC_CARD_25"
+   bind "prism2_cs"
+ 
+card "ASUS WL-110 802.11b WLAN CF Card"
+   version "ASUS", "802_11B_CF_CARD_25"
+   bind "prism2_cs"
+
+card "BUFFALO WLI-CF-S11G 802.11b WLAN Card"
+  version "BUFFALO", "WLI-CF-S11G"
+  bind "prism2_cs"
+
+card "Linksys WCF11 11Mbps 802.11b WLAN Card (Prism 2.5)"
+  version "The Linksys Group, Inc.", "Wireless Network CF Card", "ISL37300P", "RevA"
+  bind "prism2_cs"
+
+card "Linksys WCF12 11Mbps 802.11b WLAN Card (Prism 3)"
+  version "Linksys", "Wireless CompactFlash Card", "", ""
+  manfid 0x028a, 0x0673
+  bind "prism2_cs"
+
+card "NETGEAR MA401RA 11Mbps 802.11 WLAN Card"
+   version "NETGEAR MA401RA Wireless PC", "Card", "ISL37300P", "Eval-RevA"
+   bind "prism2_cs"
+
+card "D-Link DCF-660W  11Mbps 802.11b WLAN Card"
+  manfid 0xd601, 0x0005
+  bind "prism2_cs"
+
+card "Microsoft Wireless Notebook Adapter MN-520"
+  manfid 0x02d2, 0x0001
+  bind "prism2_cs"
+
+card "AnyPoint(TM) Wireless II PC Card"
+  manfid 0x0089, 0x0002
+  bind "prism2_cs"
+
+card "D-Link DRC-650 802.11b WLAN Card"
+   version "D", "Link DRC-650 11Mbps WLAN Card", "Version 01.02", "" 
+   bind "prism2_cs"
+
+card "Adaptec AWN-8030"
+   manfid 0x9005, 0x0021
+   bind "prism2_cs"
+
+card "D-Link DWL-650 rev P 802.11b WLAN card"
+   manfid 0x000b, 0x7110
+#  version "D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10", "A3"
+   bind "prism2_cs"
+
+card "I-Gate 11M PC Card"
+   version "INTERSIL",  "I-GATE 11M PC Card / PC Card plus", "Version 01.02"
+   bind "prism2_cs"
+
+card "benQ AWL100 802.11b WLAN Card"
+   version "BENQ", "AWL100 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA"
+   manfid 0x000b, 0x7300
+   bind "prism2_cs"
+
+card "Intersil Prism 2 card"
+   version "INTERSIL"
+   manfid 0x0156, 0x0002
+   bind "prism2_cs"
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base
new file mode 100644
index 0000000..76b63cd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/.svn/text-base/wlan-ng.svn-base
@@ -0,0 +1,204 @@
+#! /bin/sh
+#
+# etc/pcmcia/wlan-ng
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+# [MSM]: Moved here because wlan/shared may is intended to be used by 
+#  other scripts
+wlan_usage ()
+{
+    echo "usage: wlan-ng [action] [device name] [debug]"
+    echo "  actions: start|resume, stop|suspend, check|cksum|restart"
+    echo "  debug  : enables shell debug"
+    exit 1
+}
+
+if [ "$3" = "debug" ]; then set -x ; fi
+
+# Note: this 'shared' comes with the WLAN package
+if [ ! -f /etc/wlan/shared ] ; then
+    echo "/etc/wlan/shared not present"
+    exit 0
+fi
+
+. /etc/wlan/shared
+
+# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia
+#   stab file movement.  This test needs to be 'functionized' and made a
+#   little more robust.
+#if [ ! -f /var/run/stab ] ; then
+#	echo "Error: Possibly PCMCIA CS is not started";
+#	wlan_usage;
+#	exit 1;
+#fi
+
+# If number of args is less than 2 display usage
+if [ $# -lt 2 ]; then wlan_usage ; fi
+
+# Note: this 'shared' comes with the PCMCIA package
+# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared
+if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi
+
+# XXXX we can do stuff with $SCHEME still..?
+case "$ACTION" in
+
+'start'|'resume')
+	#=======ENABLE========================================
+	# Do we want to init the card at all?
+	eval 'WLAN_ENABLE=$ENABLE_'$DEVICE
+
+	if ! is_true $WLAN_ENABLE ; then
+		exit 0
+	fi
+
+	if is_true $WLAN_DOWNLOAD; then
+	    wlan_download $DEVICE
+        fi
+
+	wlan_enable $DEVICE
+
+	#=======MAC STARTUP=========================================
+	wlan_supports_scan $DEVICE
+	if [ $? = 0 ] ; then
+	    wlan_scan $DEVICE 
+	    if [ $? = 0 ] ; then
+		wlan_source_config_for_ssid "$ssid" "$bssid"
+
+		wlan_user_mibs $DEVICE
+		wlan_wep $DEVICE
+
+		grep 'autojoin' /proc/net/p80211/$DEVICE/wlandev > /dev/null
+		if [ $? = 0 ]; then
+		    wlan_infra $DEVICE
+		else
+		    wlan_dot11_join $DEVICE
+		fi
+	    else
+		echo "network not found.  maybe start IBSS?"
+	    fi
+	else
+	    wlan_source_config $DEVICE
+
+	    wlan_user_mibs $DEVICE
+	    wlan_wep $DEVICE
+
+	    if is_true $IS_ADHOC ; then	
+		wlan_adhoc $DEVICE
+	    else
+		wlan_infra $DEVICE
+	    fi
+	fi
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
+
+	# Call the normal network initialization
+	./network $1 $2
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+	
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+'stop'|'suspend')
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$DesiredSSID"
+
+	# Call the normal network initialization
+	./network $1 $2
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+	
+	#=======DISABLE IFSTATE=============================
+	# Take the device down to a quiescent state.
+	wlan_disable $DEVICE
+
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+'check'|'cksum'|'restart')
+	# ==========STA ====================================
+	# Just passes through for normal network device
+	# behavior.
+	if is_true $IS_ADHOC; then
+		WLAN_SCHEMESSID="$SSID"
+	else
+		WLAN_SCHEMESSID="$DesiredSSID"
+	fi
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
+	
+	# Call the normal network initialization
+	./network $1 $2 $3:$WLAN_SCHEMESSID
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 $3 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+*)
+    usage
+    ;;
+
+esac
+
+exit 0
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile
new file mode 100644
index 0000000..e9f612f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/Makefile
@@ -0,0 +1,81 @@
+# etc/pcmcia/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../../config.mk
+
+all:
+	@echo "Nothing to do"
+
+clean:
+	@echo "Nothing to do"
+	
+ifeq ($(PRISM2_PCMCIA), y)
+
+install:
+	mkdir -p $(TARGET_PCMCIA_DIR) ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng ]; then \
+		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng $(TARGET_PCMCIA_DIR)/wlan-ng.O ; \
+	fi ; \
+	cp wlan-ng $(TARGET_PCMCIA_DIR) ; \
+	chmod +x $(TARGET_PCMCIA_DIR)/wlan-ng ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf ]; then \
+		mv -f $(TARGET_PCMCIA_DIR)/wlan-ng.conf $(TARGET_PCMCIA_DIR)/wlan-ng.conf.O ; \
+	fi ; \
+	cp wlan-ng.conf $(TARGET_PCMCIA_DIR) ; \
+	if [ -f $(TARGET_PCMCIA_DIR)/config ]; then \
+	if ! grep -sq 'source.*\.\/\*\.conf$$' $(TARGET_PCMCIA_DIR)/config ; then \
+		if ! grep -sq 'source \.\/wlan-ng.conf' $(TARGET_PCMCIA_DIR)/config ; then \
+			mv -f $(TARGET_PCMCIA_DIR)/config $(TARGET_PCMCIA_DIR)/config.O ; \
+			( echo "source ./wlan-ng.conf"; cat $(TARGET_PCMCIA_DIR)/config.O) > $(TARGET_PCMCIA_DIR)/config ; \
+		fi ; \
+	fi ; \
+	fi
+
+else
+
+install:
+	@echo "Nothing to do"
+
+endif
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng
new file mode 100755
index 0000000..76b63cd
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng
@@ -0,0 +1,204 @@
+#! /bin/sh
+#
+# etc/pcmcia/wlan-ng
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+
+# [MSM]: Moved here because wlan/shared may is intended to be used by 
+#  other scripts
+wlan_usage ()
+{
+    echo "usage: wlan-ng [action] [device name] [debug]"
+    echo "  actions: start|resume, stop|suspend, check|cksum|restart"
+    echo "  debug  : enables shell debug"
+    exit 1
+}
+
+if [ "$3" = "debug" ]; then set -x ; fi
+
+# Note: this 'shared' comes with the WLAN package
+if [ ! -f /etc/wlan/shared ] ; then
+    echo "/etc/wlan/shared not present"
+    exit 0
+fi
+
+. /etc/wlan/shared
+
+# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia
+#   stab file movement.  This test needs to be 'functionized' and made a
+#   little more robust.
+#if [ ! -f /var/run/stab ] ; then
+#	echo "Error: Possibly PCMCIA CS is not started";
+#	wlan_usage;
+#	exit 1;
+#fi
+
+# If number of args is less than 2 display usage
+if [ $# -lt 2 ]; then wlan_usage ; fi
+
+# Note: this 'shared' comes with the PCMCIA package
+# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared
+if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi
+
+# XXXX we can do stuff with $SCHEME still..?
+case "$ACTION" in
+
+'start'|'resume')
+	#=======ENABLE========================================
+	# Do we want to init the card at all?
+	eval 'WLAN_ENABLE=$ENABLE_'$DEVICE
+
+	if ! is_true $WLAN_ENABLE ; then
+		exit 0
+	fi
+
+	if is_true $WLAN_DOWNLOAD; then
+	    wlan_download $DEVICE
+        fi
+
+	wlan_enable $DEVICE
+
+	#=======MAC STARTUP=========================================
+	wlan_supports_scan $DEVICE
+	if [ $? = 0 ] ; then
+	    wlan_scan $DEVICE 
+	    if [ $? = 0 ] ; then
+		wlan_source_config_for_ssid "$ssid" "$bssid"
+
+		wlan_user_mibs $DEVICE
+		wlan_wep $DEVICE
+
+		grep 'autojoin' /proc/net/p80211/$DEVICE/wlandev > /dev/null
+		if [ $? = 0 ]; then
+		    wlan_infra $DEVICE
+		else
+		    wlan_dot11_join $DEVICE
+		fi
+	    else
+		echo "network not found.  maybe start IBSS?"
+	    fi
+	else
+	    wlan_source_config $DEVICE
+
+	    wlan_user_mibs $DEVICE
+	    wlan_wep $DEVICE
+
+	    if is_true $IS_ADHOC ; then	
+		wlan_adhoc $DEVICE
+	    else
+		wlan_infra $DEVICE
+	    fi
+	fi
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
+
+	# Call the normal network initialization
+	./network $1 $2
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+	
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+'stop'|'suspend')
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$DesiredSSID"
+
+	# Call the normal network initialization
+	./network $1 $2
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+	
+	#=======DISABLE IFSTATE=============================
+	# Take the device down to a quiescent state.
+	wlan_disable $DEVICE
+
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+'check'|'cksum'|'restart')
+	# ==========STA ====================================
+	# Just passes through for normal network device
+	# behavior.
+	if is_true $IS_ADHOC; then
+		WLAN_SCHEMESSID="$SSID"
+	else
+		WLAN_SCHEMESSID="$DesiredSSID"
+	fi
+
+	# ==========PCMCIA NETDEVICE=============================
+	# Append the SSID to the pcmcia scheme name
+	wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
+	
+	# Call the normal network initialization
+	./network $1 $2 $3:$WLAN_SCHEMESSID
+	if [ $? = 1 ] ; then
+#		echo "/etc/pcmcia/network $1 $2 $3 failed."
+		wlan_restore_schemefile
+		exit 1
+	fi
+
+	# Restore scheme file to it's prior contents
+	wlan_restore_schemefile
+	;;
+
+*)
+    usage
+    ;;
+
+esac
+
+exit 0
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf
new file mode 100755
index 0000000..25e5db9
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/pcmcia/wlan-ng.conf
@@ -0,0 +1,190 @@
+
+device "prism2_cs"
+   class "wlan-ng" module "prism2_cs"
+
+card "Intersil PRISM2 Reference Design 11Mb/s 802.11b WLAN Card"
+   version "INTERSIL", "HFA384x/IEEE"
+   bind "prism2_cs"
+
+card "Compaq WL100/200 11Mb/s 802.11b WLAN Card"
+   manfid 0x0138, 0x0002
+   bind "prism2_cs"
+
+card "Compaq iPaq HNW-100 11Mb/s 802.11b WLAN Card"
+   manfid 0x028a, 0x0002
+   bind "prism2_cs"
+
+card "Samsung SWL2000-N 11Mb/s 802.11b WLAN Card"
+   manfid 0x0250, 0x0002
+   bind "prism2_cs"
+
+card "Z-Com XI300 11Mb/s 802.11b WLAN Card"
+   manfid 0xd601, 0x0002
+   bind "prism2_cs"
+
+card "ZoomAir 4100 11Mb/s 802.11b WLAN Card"
+   version "ZoomAir 11Mbps High", "Rate wireless Networking"
+   bind "prism2_cs"
+
+card "Linksys WPC11 11Mbps 802.11b WLAN Card"
+   version "Instant Wireless ", " Network PC CARD", "Version 01.02"
+   bind "prism2_cs"
+
+card "Addtron AWP-100 11Mbps 802.11b WLAN Card"
+   version "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02"
+   bind "prism2_cs"
+
+card "D-Link DWL-650 11Mbps 802.11b WLAN Card"
+   version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "SMC 2632W 11Mbps 802.11b WLAN Card"
+   version "SMC", "SMC2632W", "Version 01.02"
+   bind "prism2_cs"
+
+card "BroMax Freeport 11Mbps 802.11b WLAN Card (Prism 2.5)"
+  version "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA"
+   bind "prism2_cs"
+   
+card "U.S. Robotics IEEE 802.11b PC-CARD"
+   version "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02"
+   bind "prism2_cs"
+
+card "Level-One WPC-0100"
+   version "Digital Data Communications", "WPC-0100"
+   bind "prism2_cs"
+
+card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 2.5)"
+   manfid 0x0274, 0x1612
+   bind "prism2_cs"
+
+card "Bromax OEM 11Mbps 802.11b WLAN Card (Prism 3)"
+   manfid 0x0274, 0x1613
+   bind "prism2_cs"
+
+card "corega K.K. Wireless LAN PCC-11"
+   version "corega K.K.", "Wireless LAN PCC-11"
+   bind "prism2_cs"
+
+card "corega K.K. Wireless LAN PCCA-11"
+   version "corega K.K.", "Wireless LAN PCCA-11"
+   bind "prism2_cs"
+
+card "CONTEC FLEXSCAN/FX-DDS110-PCC"
+   manfid 0xc001, 0x0008
+   bind "prism2_cs"
+
+card "PLANEX GeoWave/GW-NS110"
+   version "PLANEX", "GeoWave/GW-NS110"
+   bind "prism2_cs"
+
+card "Ambicom WL1100 11Mbps 802.11b WLAN Card"
+   version "OEM", "PRISM2 IEEE 802.11 PC-Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "LeArtery SYNCBYAIR 11Mbps 802.11b WLAN Card"
+   version "LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "Intermec MobileLAN 11Mbps 802.11b WLAN Card"
+   manfid 0x01ff, 0x0008
+   bind "prism2_cs"
+
+card "NETGEAR MA401 11Mbps 802.11 WLAN Card"
+   version "NETGEAR MA401 Wireless PC", "Card", "Version 01.00"
+   bind "prism2_cs"
+
+card "Intersil PRISM Freedom 11mbps 802.11 WLAN Card"
+   version "Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", "Eval-RevA"
+   bind "prism2_cs"
+
+card "OTC Wireless AirEZY 2411-PCC 11Mbps 802.11 WLAN Card"
+   version "OTC", "Wireless AirEZY 2411-PCC WLAN Card", "Version 01.02"
+   bind "prism2_cs"
+
+card "Dynalink L11HDT 11Mbps 802.11 WLAN Card"
+   version "802.11", "11Mbps Wireless LAN Card", "v08C1", ""   
+   manfid 0xc250, 0x0002
+   bind "prism2_cs"
+
+card "PROXIM RangeLAN-DS/LAN PC CARD"
+   version "PROXIM", "RangeLAN-DS/LAN PC CARD"
+   bind "prism2_cs"
+
+card "ACTIONTEC PRISM Wireless LAN PC Card"
+   version "ACTIONTEC", "PRISM Wireless LAN PC Card", "0381", "RevA"
+   manfid 0x1668, 0x0101
+   bind "prism2_cs"
+
+card "3Com AirConnect 3CRWE737A"
+   version "3Com", "3CRWE737A AirConnect Wireless LAN PC Card"
+   bind "prism2_cs" 
+
+card "3Com AirConnect 3CRWE777A"
+   version "3Com", "3CRWE777A AirConnect Wireless LAN PCI Card"  
+   bind "prism2_cs" 
+
+card "ASUS WL-100 802.11b WLAN  PC Card"
+   version "ASUS", "802_11b_PC_CARD_25"
+   bind "prism2_cs"
+ 
+card "ASUS WL-110 802.11b WLAN CF Card"
+   version "ASUS", "802_11B_CF_CARD_25"
+   bind "prism2_cs"
+
+card "BUFFALO WLI-CF-S11G 802.11b WLAN Card"
+  version "BUFFALO", "WLI-CF-S11G"
+  bind "prism2_cs"
+
+card "Linksys WCF11 11Mbps 802.11b WLAN Card (Prism 2.5)"
+  version "The Linksys Group, Inc.", "Wireless Network CF Card", "ISL37300P", "RevA"
+  bind "prism2_cs"
+
+card "Linksys WCF12 11Mbps 802.11b WLAN Card (Prism 3)"
+  version "Linksys", "Wireless CompactFlash Card", "", ""
+  manfid 0x028a, 0x0673
+  bind "prism2_cs"
+
+card "NETGEAR MA401RA 11Mbps 802.11 WLAN Card"
+   version "NETGEAR MA401RA Wireless PC", "Card", "ISL37300P", "Eval-RevA"
+   bind "prism2_cs"
+
+card "D-Link DCF-660W  11Mbps 802.11b WLAN Card"
+  manfid 0xd601, 0x0005
+  bind "prism2_cs"
+
+card "Microsoft Wireless Notebook Adapter MN-520"
+  manfid 0x02d2, 0x0001
+  bind "prism2_cs"
+
+card "AnyPoint(TM) Wireless II PC Card"
+  manfid 0x0089, 0x0002
+  bind "prism2_cs"
+
+card "D-Link DRC-650 802.11b WLAN Card"
+   version "D", "Link DRC-650 11Mbps WLAN Card", "Version 01.02", "" 
+   bind "prism2_cs"
+
+card "Adaptec AWN-8030"
+   manfid 0x9005, 0x0021
+   bind "prism2_cs"
+
+card "D-Link DWL-650 rev P 802.11b WLAN card"
+   manfid 0x000b, 0x7110
+#  version "D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10", "A3"
+   bind "prism2_cs"
+
+card "I-Gate 11M PC Card"
+   version "INTERSIL",  "I-GATE 11M PC Card / PC Card plus", "Version 01.02"
+   bind "prism2_cs"
+
+card "benQ AWL100 802.11b WLAN Card"
+   version "BENQ", "AWL100 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA"
+   manfid 0x000b, 0x7300
+   bind "prism2_cs"
+
+card "Intersil Prism 2 card"
+   version "INTERSIL"
+   manfid 0x0156, 0x0002
+   bind "prism2_cs"
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan
new file mode 100755
index 0000000..70e0c54
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/rc.wlan
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+# rc.wlan 
+#
+# chkconfig: 2345 9 91 
+# description: Activates/Configures/Disables the devices
+
+if [ ! -f /etc/wlan/shared ] ; then
+    echo "/etc/wlan/shared not present"
+    exit 0
+fi
+
+. /etc/wlan/shared
+
+if [ -f /etc/init.d/functions ] ; then
+	. /etc/init.d/functions
+fi
+
+usage()
+{
+    echo "Usage: $0 {start|stop|status|restart|reload|force-reload}"
+}
+
+
+if [ $# -lt 1 ] ; then usage ; exit 1 ; fi
+action=$1
+
+case "$action" in
+
+start)
+	# This will implicitly fire off wland via hotplug.
+	echo -n "Starting WLAN Devices: "
+	if ! $MODPROBE p80211; then
+		echo "Failed to load p80211.o."
+		exit 1
+	fi
+
+	# NOTE: We don't explicitly insmod the card driver here.  The
+	#  best thing to do is to specify an alias in /etc/modules.conf.
+
+	for DEVICE in $WLAN_DEVICES; do
+	    $MODPROBE $DEVICE
+	    # if we don't have hotplug.. do things the old-fashioned way.
+	    if [ $HAS_HOTPLUG = 'n' ] ; then
+		wlan_bring_it_up $DEVICE
+	    fi
+	done
+
+	# And hotplug will take care of the rest, namely device 
+	# initialization and whatnot.
+
+        if [ -f /etc/init.d/functions ] ; then
+                echo_success
+        else
+                echo
+        fi
+
+	;;
+
+stop)
+	echo -n "Shutting Down WLAN Devices: "
+	echo -n "Shutting Down WLAN Devices: "
+	# Do a reset on each device to make sure none of them are still
+	#  trying to generate interrupts.
+	for DEVICE in $WLAN_DEVICES; do
+		wlan_disable $DEVICE
+		ifconfig $DEVICE down
+		$MODPROBE -r $DEVICE
+	done
+	
+	# remove p80211, which will implictly kill wland.
+	$MODPROBE -r p80211
+
+        if [ -f /etc/init.d/functions ] ; then
+                echo_success
+        else
+                echo
+        fi
+	;;
+
+status)
+	status wland
+	;;
+
+restart|reload|force-reload)
+	$0 stop
+	$0 start
+	EXITCODE=$?
+	;;
+
+    *)
+	usage
+	;;
+
+esac
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries
new file mode 100644
index 0000000..2c396df
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/entries
@@ -0,0 +1,31 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/udev
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2007-06-20T14:53:45.955033Z
+1831
+pizza
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+rules.d
+dir
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries
new file mode 100644
index 0000000..f486ad7
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/entries
@@ -0,0 +1,62 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/udev/rules.d
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2007-06-20T14:53:45.955033Z
+1831
+pizza
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+40-prism2.rules
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+fc4858acdc2d5f3878141956d7db575c
+2007-06-20T14:53:45.955033Z
+1831
+pizza
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+166
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base
new file mode 100644
index 0000000..1134445
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/.svn/text-base/40-prism2.rules.svn-base
@@ -0,0 +1,2 @@
+#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k"
+KERNEL="wlan*",ACTION=="add",DRIVERS=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k"
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules
new file mode 100644
index 0000000..1134445
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/udev/rules.d/40-prism2.rules
@@ -0,0 +1,2 @@
+#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k"
+KERNEL="wlan*",ACTION=="add",DRIVERS=="prism2_usb" ,RUN+="/etc/wlan/wlan-udev.sh %k"
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent
new file mode 100755
index 0000000..7cf800a
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan.agent
@@ -0,0 +1,78 @@
+#!/bin/bash
+#
+# p80211/wlan hotplug policy agent.
+#
+# wlan hotplug params include:
+#	
+#	ACTION=%s [register|remove|shutdown|startup|suspend|resume]
+#	INTERFACE=%s
+#       NSDNAME=%s
+#
+
+cd /etc/hotplug
+. hotplug.functions
+
+#DEBUG=yes export DEBUG
+
+if [ "$INTERFACE" = "" ]; then
+    mesg Bad WLAN invocation: \$INTERFACE is not set
+    exit 1
+fi
+
+if [ "$NSDNAME" = "" ]; then
+    mesg Bad WLAN invocation: \$NSDNAME is not set
+    exit 1
+fi
+
+debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\)
+
+if [ "$NSDNAME" = "prism2_cs" ] ; then
+    mesg "WLAN Hotplug bypassed for pcmcia"
+    exit 0
+fi
+
+# load up the shared scripts
+if [ ! -f /etc/wlan/shared ] ; then
+    mesg "/etc/wlan/shared not present, aborting"
+    exit 1
+fi
+
+ECHO=mesg
+. /etc/wlan/shared
+
+case $ACTION in
+'register'|'resume')
+	debug_mesg WLAN $INTERFACE registered.
+	wlan_bring_it_up $INTERFACE $WLAN_WEXT
+	if [ $? = 0 ] ; then
+	    mesg WLAN $INTERFACE brought up successfully.
+		if [ -x /etc/wlan/pre-ifup ] ; then
+			# pre-ifup is presumed to call ifup if it
+			#  wants to...it may choose to skip it.
+			mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup"
+			/etc/wlan/pre-ifup $INTERFACE
+		else
+			mesg "WLAN bringing up layer 3+ with /sbin/ifup"
+			/sbin/ifdown $INTERFACE
+			/sbin/ifup $INTERFACE
+		fi
+	else
+	    mesg WLAN Could not bring up $INTERFACE
+	fi
+	# eventually invoke net.agent on $INTERFACE w/ REGISTER
+;;
+'remove'|'suspend')
+	debug_mesg WLAN $INTERFACE removed.
+;;
+'startup')
+	# kick off wland.
+	debug_mesg WLAN p80211 starting!
+;;
+'shutdown')
+	debug_mesg WLAN p80211 shutting down!
+;;
+*)
+    debug_mesg WLAN $ACTION event not supported
+    exit 1 ;;
+
+esac
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries
new file mode 100644
index 0000000..698bde6
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/entries
@@ -0,0 +1,198 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/etc/wlan
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2008-06-24T19:10:11.002401Z
+1863
+pizza
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+wlancfg-DEFAULT
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+5b4df9b122c000907fa3e18b7b9ad9ed
+2003-03-24T16:18:08.000000Z
+1324
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1826
+
+wlan.conf
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+55c3cd28747fba0d5519d4b1af2f393f
+2005-02-01T19:11:19.523569Z
+1688
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3101
+
+shared
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+909d2eada524282172a9e4df7dd42b84
+2008-06-24T19:10:11.002401Z
+1863
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17350
+
+wlan-udev.sh
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+b0eb492fe38ee1ec69e43e885ca1e8b3
+2007-02-27T16:43:02.918194Z
+1823
+pizza
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+947
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+9010fd4e8dd3e0e8cb1cbf1c79e38b4f
+2006-06-26T15:08:43.057073Z
+1777
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2430
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/shared.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlan.conf.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/prop-base/wlancfg-DEFAULT.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..8133cf3
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,64 @@
+# etc/wlan/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../../config.mk
+
+all:
+	echo "Nothing to do"
+
+clean:
+	echo "Nothing to do"
+
+install:
+	mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan
+	if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \
+		cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \
+	fi 
+	cp shared wlancfg-DEFAULT wlan-udev.sh \
+		$(TARGET_ROOT_ON_HOST)/etc/wlan
+	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-*
+	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf
+	chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh
+	echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base
new file mode 100644
index 0000000..5d84bb8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/shared.svn-base
@@ -0,0 +1,738 @@
+#!/bin/bash
+# etc/wlan/shared
+#
+# Copyright (C) 2002 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+TMPDIR=/tmp
+
+if [ ! -n "$ECHO" ]; then
+	ECHO=echo
+fi
+
+if [ ! -n "$WLAN_UDEV" ] ; then
+if [ -x /sbin/modprobe ] ; then
+	MODPROBE=/sbin/modprobe
+else
+	${ECHO} "/sbin/modprobe not found."
+	exit 1
+fi
+fi
+
+if [ -x /sbin/wlanctl-ng ] ; then 
+	WLANCTL=/sbin/wlanctl-ng
+else
+	${ECHO} "/sbin/wlanctl-ng not found."
+	exit 1
+fi
+
+# linux-wlan-ng > 0.2.4 there is no wland 
+#if [ -x /sbin/wland ] ; then
+#    WLAND=/sbin/wland
+#else
+#    ${ECHO} "/sbin/wland not found."
+#    exit 1
+#fi
+
+if [ -z "$WLAN_UDEV" ] ; then
+	HAS_HOTPLUG=n
+	if [ -f /proc/sys/kernel/hotplug -a \
+	     -f /etc/hotplug/wlan.agent ] ; then
+		HOTPLUGGER=$(</proc/sys/kernel/hotplug)
+		if [ -n "$HOTPLUGGER" ] ; then
+			if [ -x $HOTPLUGGER ] ; then
+				HAS_HOTPLUG=y
+			fi
+		fi
+	fi
+fi
+
+# Source the wlan configuration
+if [ -f /etc/wlan/wlan.conf ] ; then
+	. /etc/wlan/wlan.conf
+else
+	${ECHO} "/etc/wlan/wlan.conf not found."
+	exit 0
+fi
+
+# Source NSD specific functions
+# nsd_fwload
+# nsd_mibset
+# Debian mod. If there is shared.dpkg-old we get a endless loop
+if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then
+	for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do 
+		. $i
+	done
+else
+	${ECHO} "/etc/wlan/shared.* not found."
+	exit 0
+fi
+
+is_true ()
+{
+	# $1 == string containing a t/f indicator.
+
+	[ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \
+	  -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ]
+}
+
+wlan_nsdname ()
+{
+	# $1 == wlandev
+	# Writes the given device's name to stdout
+	grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/'
+}
+
+wlan_enable ()
+{
+	# $1 == wlandev
+
+	#=======ENABLE IFSTATE=============================
+	# Bring the device into its operable state
+
+    # if running under udev module must be loaded to get here so skip checks
+    if [ ! -n "$WLAN_UDEV" ] ; then 
+
+	$MODPROBE $1
+	
+	# First, make sure the driver is loaded....
+	if ! ifconfig $1 > /dev/null 2>&1 ; then
+		${ECHO} "Error: Device $1 does not seem to be present."
+		${ECHO} "Make sure you've inserted the appropriate"
+		${ECHO} "modules or that your modules.conf file contains"
+		${ECHO} "the appropriate aliase(s)."
+		return 1
+	fi
+     fi
+	# Call the nsd script's fwload function, in case the card needs
+	# a firmware load, or could use an optional one.
+
+	nsdname=`wlan_nsdname $1`
+	if ! ${nsdname}_fwload $1 ; then
+		${ECHO} "Firmware failed to load for device $1"
+		return 1
+	fi
+
+	# Enable the interface
+	result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable`
+	if [ $? = 0 ] ; then
+		eval $result
+		if [ $resultcode != "success" ]; then
+			${ECHO} "Failed to enable the device, resultcode=" \
+				$resultcode "."
+			return 1
+		fi
+	else
+		${ECHO} "Failed to enable the device, exitcode=" $? "."
+		return 1
+	fi
+
+	# Set any NSD specific MIBs
+	${nsdname}_mibset $1
+}
+
+wlan_user_mibs ()
+{
+	# $1 == wlandev
+
+	#=======USER MIB SETTINGS=============================
+	# Set the user specified MIB items.
+	for i in $USER_MIBS ; do
+		result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"`
+		if [ $? = 0 ] ; then
+			eval $result
+			if [ $resultcode != "success" ] ; then 
+				${ECHO} "Failed to set user MIB $i."
+				return 1
+			fi
+		else
+			${ECHO} "Failed to set user MIB $i."
+			return 1
+		fi
+	done
+}
+
+wlan_source_config ()
+{
+	# $1 == wlandev
+
+	# XXX what about stray singlequotes.
+	eval 'GOSSID="$SSID_'$1'"'
+	wlan_source_config_for_ssid "$GOSSID"
+}
+
+wlan_source_config_for_ssid ()
+{
+	# $1 == ssid[:bssid]
+        # $2 == bssid (optional)
+
+        DesiredSSID="$1"
+        DesiredBSSID="$2"
+
+        if [ -n "$2" ] ; then
+               token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'`
+               token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'`
+	       if [ -n "$token_ssid" ] ; then
+		   DesiredSSID="$token_ssid"
+		   DesiredBSSID="$token_bssid"
+	       fi
+
+	fi
+
+	if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then
+		. "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID"
+	elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then
+		. "/etc/wlan/wlancfg-$DesiredSSID"
+	else 
+
+		if [ -n "$1" ] ; then
+			${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default."
+		fi
+
+		. "/etc/wlan/wlancfg-DEFAULT"
+	fi
+}
+
+wlan_disable ()
+{
+	# $1 == wlandev
+
+	$WLANCTL $1 lnxreq_ifstate ifstate=disable
+}	
+
+wlan_ssid_in_list ()
+{
+	# $1 == wlandev, $2 == ssid,  $3 == bssid
+
+  	eval 'GOSSID="$SSID_'$1'"'
+  	
+	# This "eval" hackery is to allow escapes in GOSSID...
+	cmd="for token in $GOSSID ; do
+		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\`
+		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\`
+  
+		if [ -z \"\$ssid_token\" ] ; then
+			ssid_token="\$token"
+  		fi
+  
+		if [ -n \"\$bssid_token\" ] ; then
+			if [ \"\$bssid_token\" = \"\$3\" ] ; then
+  				return 0
+  			fi
+		elif [ \"\$2\" = \"\$ssid_token\" ] ; then
+  			return 0	
+  		fi
+	done"
+	eval "$cmd"
+
+	return 1
+}
+
+wlan_supports_scan ()
+{
+	# $1 == wlandev
+
+	if is_true "$WLAN_SCAN" ; then
+		cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null
+		if [ $? = 0 ] ; then
+			return 0
+		fi
+	fi
+	return 1
+}
+
+wlan_scan ()
+{
+	# $1 == wlandev
+
+	# find our allowed SSID list.
+	
+	# XXX what about stray singlequotes.
+	eval 'GOSSID="$SSID_'$1'"'
+
+	# kick off a quick scan with the broadcast SSID.
+	wlan_scan_one $1 '' '' n
+	if [ $? = 0  -a \
+	    "$GOSSID" = "" ] ; then
+	    # if successful and our ssid list is null, return.
+	    sleep 1
+	    return 0
+	fi	
+
+	# otherwise we walk through the list, and scan for eacn in turn.
+	# this "eval" hackery is to allow escapes in GOSSID
+	cmd="for token in $GOSSID ; do
+		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\`
+		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\`
+
+		if [ -z \"\$ssid_token\" ] ; then
+			ssid_token=\"\$token\"
+		fi
+
+		wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\"
+		if [ \$? = 0 ] ; then
+			sleep 1
+			return 0
+		fi
+	done"
+	eval "$cmd"
+
+	# We got to the end of the list.  Maybe try "any"
+	if is_true "$WLAN_ANY" ; then
+		wlan_scan_one $1
+		sleep 1
+		return $?
+	fi
+
+	sleep 1
+	return 1
+}
+
+
+wlan_scan_one ()
+{
+	# $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ]
+
+    if [ -z "$4" ] ; then
+	append=true
+    else
+	append=false
+    fi
+
+	numbss=0
+
+	result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \
+		scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \
+		minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append`
+	eval $result
+	if [ $resultcode != 'success' ] ; then
+		${ECHO} "Scan failed ($resultcode) "
+		return 1
+	fi
+
+	## XXX if numbss == 0, repeat with $2 $3 $4?
+
+	i=0
+	bssfound=""
+
+	# walk through the results and do first-cut matching.
+	while [ $i -lt $numbss ] ; do
+		result=`$WLANCTL $1 dot11req_scan_results bssindex=$i`
+		eval $result
+
+		if [ -n "$3" ] ; then
+                        if [ "$3" = "$bssid" ] ; then
+                               bssfound="$bssfound $i"
+			fi
+		elif [ -z "$2" ] ; then
+			# if our ssid is "", then we pick the first entry.
+			bssfound="$bssfound $i"
+		elif [ "$2" = "$ssid" ] ; then
+			bssfound="$bssfound $i"
+		fi
+		i=`expr $i + 1`
+	done
+
+	if [ -z "$bssfound" ]; then	# No BSSs found, bail.
+		return 1
+	else
+		# Now find the closest
+		bigsignal=0
+		for i in $bssfound ; do
+			result=`$WLANCTL $1 dot11req_scan_results bssindex=$i`
+			eval $result
+			if [ $bigsignal -lt $signal ]; then
+				bigsignal=$signal
+				bigbssindex=$i
+			fi
+		done
+		result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex`
+		eval $result
+		return 0
+	fi
+}
+
+wlan_wep ()
+{
+	# $1 == wlandev
+
+	#=======WEP===========================================
+	# Setup privacy
+	if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then
+		return 0;
+	fi
+
+	result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented`
+	if [ $? = 0 ] ; then
+		eval $result
+		eval $mibattribute
+	else
+		${ECHO} "dot11PrivacyOptionImplemented mibget failed."
+		return 1
+	fi
+
+	if [ $dot11PrivacyOptionImplemented = "false" ] ; then
+		${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false."
+		return 1
+	fi
+
+	# Do we want host-based WEP?
+	result=`$WLANCTL $1 lnxreq_hostwep \
+	    decrypt="${lnxreq_hostWEPDecrypt:-false}"    \
+	    encrypt="${lnxreq_hostWEPEncrypt:-false}"`
+
+	# set up the rest of the parametsrs.
+	if [ $dot11PrivacyOptionImplemented = "true" -a \
+	     $dot11PrivacyInvoked = "true" ] ; then
+		result=`$WLANCTL $1 dot11req_mibset \
+			  mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked`
+		if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then
+			if [ ${PRIV_KEY128:-"false"} = "false" ]; then
+				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5`
+			else
+				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13`
+			fi
+				knum=0
+			for i in $keys ; do
+				result=`$WLANCTL $1 dot11req_mibset \
+				mibattribute=dot11WEPDefaultKey$knum=$i`
+				knum=`expr $knum + 1`
+			done
+		else 
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 `
+		fi
+	else
+		# disable wep explicitly.
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11ExcludeUnencrypted=false `
+	fi
+}
+
+wlan_adhoc ()
+{
+	# $1 == wlandev
+
+	#=======IBSS STARTUP==================================
+	startcmd="$WLANCTL $1 dot11req_start "
+	startcmd="$startcmd ssid=$DesiredSSID"
+	startcmd="$startcmd bsstype=independent"
+	startcmd="$startcmd beaconperiod=$BCNINT" 
+	startcmd="$startcmd dtimperiod=3"
+	startcmd="$startcmd cfpollable=false"
+	startcmd="$startcmd cfpollreq=false"
+	startcmd="$startcmd cfpperiod=3"
+	startcmd="$startcmd cfpmaxduration=100"
+	startcmd="$startcmd probedelay=100"
+	startcmd="$startcmd dschannel=$CHANNEL"
+	j=1
+	for i in $BASICRATES ; do
+		startcmd="$startcmd basicrate$j=$i"
+		j=`expr $j + 1`
+		done
+
+	j=1
+	for i in $OPRATES ; do
+		startcmd="$startcmd operationalrate$j=$i"
+		j=`expr $j + 1`
+	done
+
+	results=`$startcmd`	# Here's where it runs
+	if [ $? = 0 ]; then 
+		eval $results
+		if [ $resultcode != "success" ] ; then 
+			${ECHO} "IBSS not started, resultcode=$resultcode"
+			exit 1
+		else
+			${ECHO} "IBSS mode started."
+		fi
+	else
+		${ECHO} FAILED: $startcmd
+		return 1
+	fi
+	WLAN_SCHEMESSID="$DesiredSSID"
+}
+
+wlan_infra ()
+{
+	# $1 == wlandev
+
+	#==== INFRASTRUCURE STARTUP===========================
+	# XXX TODO:  Grok DesiredBSSID
+
+	sleep 5
+	results=`$WLANCTL $1 lnxreq_autojoin \
+		"ssid=$DesiredSSID" \
+		authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'`
+	eval $results
+	if [ ${resultcode:-"failure"} != "success" ] ; then
+		${ECHO} 'error: Autojoin indicated failure!'
+		return 1;
+	fi
+
+	WLAN_SCHEMESSID="$DesiredSSID"
+}
+
+wlan_dot11_join ()
+{
+	# $1 == wlandev
+
+	joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID"
+	joincmd="$joincmd joinfailuretimeout=1"
+	
+	j=1
+	for i in $OPRATES ; do
+		joincmd="$joincmd operationalrate$j=$i"
+		j=`expr $j + 1`
+	done
+
+	results=`$joincmd`
+
+	eval $results
+	if [ ${resultcode:-"failure"} != "success" ] ; then
+		${ECHO} "$1: JOIN Failure"
+		${ECHO} "joincmd=$joincmd"
+		${ECHO} "results=$results"
+		return 1;
+	fi
+}
+
+wlan_dot11_auth_assoc ()
+{
+    # $1 == wlandev
+	if [ $bsstype = "infrastructure" ] ; then 
+		results=`$WLANCTL $1 dot11req_authenticate \
+				peerstaaddress=$DesiredBSSID \
+				authenticationtype=$AuthType \
+				authenticationfailuretimeout=2000`
+		eval $results
+		if [ ${resultcode:-"failure"} != "success" ] ; then
+			${ECHO} "error:  dot11req_authenticate failed, "\
+				"resultcode=$resultcode"
+			return 1;
+		fi
+		results=`$WLANCTL $1 dot11req_associate \
+				listeninterval=1000 \
+				associatefailuretimeout=2000 `
+		if [ ${resultcode:-"failure"} != "success" ] ; then
+			${ECHO} 'error:  dot11req_associate failed!'
+			return 1;
+		fi
+	fi
+}
+
+wlan_set_ssid_schemefile ()
+{
+	# $1 == SSID
+
+	# Find the scheme file 
+	if [ -r /var/lib/misc/pcmcia-scheme ] ; then
+		# Debian
+		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme"
+	elif [ -d /var/state/pcmcia ] ; then
+		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme"
+	elif [ -d /var/lib/pcmcia ] ; then
+        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme"
+	else
+		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme"
+	fi
+
+	# Collect the current scheme name and save the file
+	if [ -r $WLAN_SCHEMEFILE ] ; then
+		WLAN_SCHEME=`cat $WLAN_SCHEMEFILE`
+		cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp
+	else
+		touch /var/run/wlan_scheme_`date +"%T"`.tmp
+		
+	fi
+
+	# Set up the <scheme:SSID> string
+	if [ ! "$WLAN_SCHEME" ] ; then 
+		WLAN_SCHEME="default"
+	fi
+	WLAN_SCHEME="$WLAN_SCHEME:$1"
+
+	# Write to schemefile
+	echo $WLAN_SCHEME > $WLAN_SCHEMEFILE
+}
+
+wlan_restore_schemefile ()
+{
+	# Find the scheme file 
+	if [ -r /var/lib/misc/pcmcia-scheme ] ; then
+		# Debian
+		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme"
+	elif [ -d /var/state/pcmcia ] ; then
+		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme"
+	elif [ -d /var/lib/pcmcia ] ; then
+        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme"
+	else
+		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme"
+	fi
+
+	TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1`
+
+	if [ -r $TMPFILE ] ; then
+		cat $TMPFILE > $WLAN_SCHEMEFILE
+		rm -f $TMPFILE
+	else
+		${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found."
+	fi
+}
+
+wlan_bring_it_up ()
+{
+    # $1 == wlandev
+    # $2 == non-null if wext enabled.
+
+    #=======ENABLE========================================
+    # Do we want to init the card at all?
+    eval 'WLAN_ENABLE=$ENABLE_'$1
+
+    if ! is_true $WLAN_ENABLE ; then
+	return 1
+    fi
+    
+    if wlan_enable $1 ; then
+	if [ -z "$2" ] ; then
+	    wlan_scan_and_join $1
+	    return $?
+	else
+	    ${ECHO} "Bypassing configuration due to wireless extensions"
+	fi	
+    else
+	return 1;
+    fi
+
+    return 1
+}
+
+wlan_scan_and_join ()
+{
+    #=======MAC STARTUP=========================================
+    wlan_supports_scan $1
+    if [ $? = 0 ] ; then
+	wlan_scan $1 
+	if [ $? = 0 ] ; then
+	    wlan_source_config_for_ssid "$ssid" "$bssid"
+	    
+	    wlan_user_mibs $1
+	    wlan_wep $1
+	    
+	    wlan_join $1
+	else
+	    if is_true $IS_ADHOC ; then     
+		# start an IBSS; we didn't find one.
+		wlan_adhoc $1
+	    else
+		return 1
+	    fi
+	fi
+    else
+	wlan_source_config $1
+	
+	wlan_user_mibs $1
+	wlan_wep $1
+	
+	if is_true $IS_ADHOC ; then     
+	    wlan_adhoc $1
+	else
+	    wlan_infra $1
+	fi
+    fi
+    
+    return $?
+}
+
+wlan_join ()
+{
+    # $1 == wlandev
+    grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null
+    if [ $? = 0 ]; then
+	wlan_infra $1
+    else
+	wlan_dot11_join $1
+	wlan_dot11_auth_assoc $1
+    fi
+}
+
+tmpname ()
+{
+	# $1 == prefix
+	local i=0
+	local tname=$TMPDIR/${1}_$$
+	if [ -f ${tname}.tmp ] ; then
+		for i in 0 1 2 3 4 5 6 7 8 9 ; do
+			if [ ! -f ${tname}_${i}.tmp ] ; then
+				echo ${tname}_${i}.tmp 
+				return 0
+			fi
+		done
+	else
+		echo ${tname}.tmp
+	fi
+	return 0
+}
+
+source_procfile ()
+{
+	# $1 == procfile to source
+	local fname=`tmpname wlan_procfile`
+	cat "$1" > $fname
+	. $fname
+	rm -f $fname
+}
+
+# This is set by the Configure script as part of 'make install'
+#FIRMWARE_DIR="/usr/share/linux-wlan"
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base
new file mode 100644
index 0000000..879dd14
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan-udev.sh.svn-base
@@ -0,0 +1,46 @@
+#! /bin/bash
+
+
+# script to start prism2 wlan for fedora FC5 udev 
+#udev rule
+#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k"
+
+# 01-01-2007 (rsk) add check for wlan_wext_write
+# 31-01-2007 (rsk) get the check right this time :)
+
+WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write
+
+DEVICE=$1
+WLAN_UDEV=1
+
+. /etc/wlan/shared
+
+if [ -f $WEXT_PARAM ]; then
+    WLAN_WEXT=`cat $WEXT_PARAM`
+fi
+
+if [ $WLAN_WEXT = 1 ]; then
+    wlan_bring_it_up $DEVICE TRUE
+	# set encrypt on card not host
+	result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"`
+	if [ $? != 0 ]; then
+	    echo "Cannot enable wep $result"
+	    exit 1
+	fi
+else
+    echo calling wlan_bring_it_up
+    wlan_bring_it_up $DEVICE
+
+    if [ $? = 0 ] ; then
+	echo $DEVICE start OK
+        #allow time during boot to let other things start
+	#sleep 5
+	/sbin/ifup $DEVICE
+    else
+	echo $DEVICE failed to come up! >&2
+	exit 1
+    fi
+fi
+exit 0
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base
new file mode 100644
index 0000000..fc8dcfa
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlan.conf.svn-base
@@ -0,0 +1,84 @@
+#! /bin/sh 
+# Wireless LAN adapter configuration
+#
+# etc/wlan/wlan.conf
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+# This file is sourced by all configuration scripts.
+#
+# The WLAN_DEVICES variable identifies the device names of each WLAN device.
+# If you have more than one, make sure each one is identified in a whitespace
+# separated list that's assigned to WLAN_DEVICES.
+
+WLAN_DEVICES="wlan0"
+
+# Below is the list of channels to scan, when we scan.
+ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00"
+# Below is the min and max time we linger on a channel during a scan.
+ChannelMinTime=200
+ChannelMaxTime=250
+# And here we have the master scan toggle. 
+WLAN_SCAN=n
+
+# if you want temporary files to go elsewhere, change this.
+TMPDIR=/tmp
+
+##########
+# Note:  To bind to a specific network, change the SSID to something different
+#        and create the file /etc/wlan/wlancfg-<SSID> with your network-
+#        specific settings.  If this file is not present, the settings in
+#        /etc/wlancfg/wlancfg-DEFAULT are used.
+#
+# for example:
+#    SSID_wlan0="linux-wlan"
+# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present.
+#
+# Use a SSID of "" to associate with any network in range.
+#########
+
+SSID_wlan0=""
+ENABLE_wlan0=y
+#SSID_wlan1=""
+#ENABLE_wlan1=n
+#SSID_wlan2=""
+#ENABLE_wlan2=n
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base
new file mode 100644
index 0000000..d916034
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/.svn/text-base/wlancfg-DEFAULT.svn-base
@@ -0,0 +1,43 @@
+#=======USER MIB SETTINGS=============================
+# You can add the assignments for various MIB items
+#  of your choosing to this variable, separated by 
+#  whitespace.  The wlan-ng script will then set each one.
+# Just uncomment the variable and set the assignments 
+#  the way you want them.
+
+#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed"
+
+#=======WEP===========================================
+# [Dis/En]able WEP.  Settings only matter if PrivacyInvoked is true
+lnxreq_hostWEPEncrypt=false     # true|false
+lnxreq_hostWEPDecrypt=false     # true|false
+dot11PrivacyInvoked=false	# true|false
+dot11WEPDefaultKeyID=0		# 0|1|2|3
+dot11ExcludeUnencrypted=true	# true|false, in AP this means WEP is required.
+
+# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate 
+#  keys (just a convenience)
+# add-ons/ in the tarball contains other key generators.
+PRIV_GENERATOR=/sbin/nwepgen	# nwepgen, Neesus compatible
+PRIV_KEY128=false		# keylength to generate
+PRIV_GENSTR=""
+
+# or set them explicitly.  Set genstr or keys, not both.
+dot11WEPDefaultKey0=		# format: xx:xx:xx:xx:xx   or
+dot11WEPDefaultKey1=		#         xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
+dot11WEPDefaultKey2=		#  e.g.   01:20:03:40:05   or
+dot11WEPDefaultKey3=		#         01:02:03:04:05:06:07:08:09:0a:0b:0c:0d
+#=======SELECT STATION MODE===================
+IS_ADHOC=n 			# y|n, y - adhoc, n - infrastructure
+
+#======= INFRASTRUCTURE STATION  ===================
+# What kind of authentication?
+AuthType="opensystem"		# opensystem | sharedkey (requires WEP)
+
+#======= ADHOC STATION ============================
+BCNINT=100			# Beacon interval (in Kus)
+CHANNEL=6			# DS channel for BSS (1-14, depends 
+				#   on regulatory domain)
+BASICRATES="2 4"		# Rates for mgmt&ctl frames (in 500Kb/s)
+OPRATES="2 4 11 22"		# Supported rates in BSS (in 500Kb/s)
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile
new file mode 100644
index 0000000..8133cf3
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/Makefile
@@ -0,0 +1,64 @@
+# etc/wlan/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../../config.mk
+
+all:
+	echo "Nothing to do"
+
+clean:
+	echo "Nothing to do"
+
+install:
+	mkdir -p $(TARGET_ROOT_ON_HOST)/etc/wlan
+	if [ ! -f $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ] ; then \
+		cp wlan.conf $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf ; \
+	fi 
+	cp shared wlancfg-DEFAULT wlan-udev.sh \
+		$(TARGET_ROOT_ON_HOST)/etc/wlan
+	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlancfg-*
+	chmod 600 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan.conf
+	chmod 755 $(TARGET_ROOT_ON_HOST)/etc/wlan/wlan-udev.sh
+	echo FIRMWARE_DIR=$(FIRMWARE_DIR) >> $(TARGET_ROOT_ON_HOST)/etc/wlan/shared
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared
new file mode 100644
index 0000000..5d84bb8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/shared
@@ -0,0 +1,738 @@
+#!/bin/bash
+# etc/wlan/shared
+#
+# Copyright (C) 2002 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+TMPDIR=/tmp
+
+if [ ! -n "$ECHO" ]; then
+	ECHO=echo
+fi
+
+if [ ! -n "$WLAN_UDEV" ] ; then
+if [ -x /sbin/modprobe ] ; then
+	MODPROBE=/sbin/modprobe
+else
+	${ECHO} "/sbin/modprobe not found."
+	exit 1
+fi
+fi
+
+if [ -x /sbin/wlanctl-ng ] ; then 
+	WLANCTL=/sbin/wlanctl-ng
+else
+	${ECHO} "/sbin/wlanctl-ng not found."
+	exit 1
+fi
+
+# linux-wlan-ng > 0.2.4 there is no wland 
+#if [ -x /sbin/wland ] ; then
+#    WLAND=/sbin/wland
+#else
+#    ${ECHO} "/sbin/wland not found."
+#    exit 1
+#fi
+
+if [ -z "$WLAN_UDEV" ] ; then
+	HAS_HOTPLUG=n
+	if [ -f /proc/sys/kernel/hotplug -a \
+	     -f /etc/hotplug/wlan.agent ] ; then
+		HOTPLUGGER=$(</proc/sys/kernel/hotplug)
+		if [ -n "$HOTPLUGGER" ] ; then
+			if [ -x $HOTPLUGGER ] ; then
+				HAS_HOTPLUG=y
+			fi
+		fi
+	fi
+fi
+
+# Source the wlan configuration
+if [ -f /etc/wlan/wlan.conf ] ; then
+	. /etc/wlan/wlan.conf
+else
+	${ECHO} "/etc/wlan/wlan.conf not found."
+	exit 0
+fi
+
+# Source NSD specific functions
+# nsd_fwload
+# nsd_mibset
+# Debian mod. If there is shared.dpkg-old we get a endless loop
+if [ "`ls /etc/wlan/shared.* 2>/dev/null`" ]; then
+	for i in `find /etc/wlan -name 'shared.*' -a ! -name '*.dpkg*'` ; do 
+		. $i
+	done
+else
+	${ECHO} "/etc/wlan/shared.* not found."
+	exit 0
+fi
+
+is_true ()
+{
+	# $1 == string containing a t/f indicator.
+
+	[ "$1" = "y" -o "$1" = "Y" -o "$1" = "yes" -o "$1" = "YES" \
+	  -o "$1" = "t" -o "$1" = "T" -o "$1" = "true" -o "$1" = "TRUE" ]
+}
+
+wlan_nsdname ()
+{
+	# $1 == wlandev
+	# Writes the given device's name to stdout
+	grep 'nsd name' /proc/net/p80211/$1/wlandev | sed -e 's/.*: \(.*\)_.*/\1/'
+}
+
+wlan_enable ()
+{
+	# $1 == wlandev
+
+	#=======ENABLE IFSTATE=============================
+	# Bring the device into its operable state
+
+    # if running under udev module must be loaded to get here so skip checks
+    if [ ! -n "$WLAN_UDEV" ] ; then 
+
+	$MODPROBE $1
+	
+	# First, make sure the driver is loaded....
+	if ! ifconfig $1 > /dev/null 2>&1 ; then
+		${ECHO} "Error: Device $1 does not seem to be present."
+		${ECHO} "Make sure you've inserted the appropriate"
+		${ECHO} "modules or that your modules.conf file contains"
+		${ECHO} "the appropriate aliase(s)."
+		return 1
+	fi
+     fi
+	# Call the nsd script's fwload function, in case the card needs
+	# a firmware load, or could use an optional one.
+
+	nsdname=`wlan_nsdname $1`
+	if ! ${nsdname}_fwload $1 ; then
+		${ECHO} "Firmware failed to load for device $1"
+		return 1
+	fi
+
+	# Enable the interface
+	result=`$WLANCTL $1 lnxreq_ifstate ifstate=enable`
+	if [ $? = 0 ] ; then
+		eval $result
+		if [ $resultcode != "success" ]; then
+			${ECHO} "Failed to enable the device, resultcode=" \
+				$resultcode "."
+			return 1
+		fi
+	else
+		${ECHO} "Failed to enable the device, exitcode=" $? "."
+		return 1
+	fi
+
+	# Set any NSD specific MIBs
+	${nsdname}_mibset $1
+}
+
+wlan_user_mibs ()
+{
+	# $1 == wlandev
+
+	#=======USER MIB SETTINGS=============================
+	# Set the user specified MIB items.
+	for i in $USER_MIBS ; do
+		result=`$WLANCTL $1 dot11req_mibset "mibattribute=$i"`
+		if [ $? = 0 ] ; then
+			eval $result
+			if [ $resultcode != "success" ] ; then 
+				${ECHO} "Failed to set user MIB $i."
+				return 1
+			fi
+		else
+			${ECHO} "Failed to set user MIB $i."
+			return 1
+		fi
+	done
+}
+
+wlan_source_config ()
+{
+	# $1 == wlandev
+
+	# XXX what about stray singlequotes.
+	eval 'GOSSID="$SSID_'$1'"'
+	wlan_source_config_for_ssid "$GOSSID"
+}
+
+wlan_source_config_for_ssid ()
+{
+	# $1 == ssid[:bssid]
+        # $2 == bssid (optional)
+
+        DesiredSSID="$1"
+        DesiredBSSID="$2"
+
+        if [ -n "$2" ] ; then
+               token_ssid=`echo $1 | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'`
+               token_bssid=`echo $1 | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'`
+	       if [ -n "$token_ssid" ] ; then
+		   DesiredSSID="$token_ssid"
+		   DesiredBSSID="$token_bssid"
+	       fi
+
+	fi
+
+	if [ -f "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID" ] ; then
+		. "/etc/wlan/wlancfg-$DesiredSSID:$DesiredBSSID"
+	elif [ -f "/etc/wlan/wlancfg-$DesiredSSID" ] ; then
+		. "/etc/wlan/wlancfg-$DesiredSSID"
+	else 
+
+		if [ -n "$1" ] ; then
+			${ECHO} "Failed to open network config file /etc/wlan/wlancfg-$1, using default."
+		fi
+
+		. "/etc/wlan/wlancfg-DEFAULT"
+	fi
+}
+
+wlan_disable ()
+{
+	# $1 == wlandev
+
+	$WLANCTL $1 lnxreq_ifstate ifstate=disable
+}	
+
+wlan_ssid_in_list ()
+{
+	# $1 == wlandev, $2 == ssid,  $3 == bssid
+
+  	eval 'GOSSID="$SSID_'$1'"'
+  	
+	# This "eval" hackery is to allow escapes in GOSSID...
+	cmd="for token in $GOSSID ; do
+		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\`
+		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\`
+  
+		if [ -z \"\$ssid_token\" ] ; then
+			ssid_token="\$token"
+  		fi
+  
+		if [ -n \"\$bssid_token\" ] ; then
+			if [ \"\$bssid_token\" = \"\$3\" ] ; then
+  				return 0
+  			fi
+		elif [ \"\$2\" = \"\$ssid_token\" ] ; then
+  			return 0	
+  		fi
+	done"
+	eval "$cmd"
+
+	return 1
+}
+
+wlan_supports_scan ()
+{
+	# $1 == wlandev
+
+	if is_true "$WLAN_SCAN" ; then
+		cat /proc/net/p80211/$1/wlandev | grep 'scan' > /dev/null
+		if [ $? = 0 ] ; then
+			return 0
+		fi
+	fi
+	return 1
+}
+
+wlan_scan ()
+{
+	# $1 == wlandev
+
+	# find our allowed SSID list.
+	
+	# XXX what about stray singlequotes.
+	eval 'GOSSID="$SSID_'$1'"'
+
+	# kick off a quick scan with the broadcast SSID.
+	wlan_scan_one $1 '' '' n
+	if [ $? = 0  -a \
+	    "$GOSSID" = "" ] ; then
+	    # if successful and our ssid list is null, return.
+	    sleep 1
+	    return 0
+	fi	
+
+	# otherwise we walk through the list, and scan for eacn in turn.
+	# this "eval" hackery is to allow escapes in GOSSID
+	cmd="for token in $GOSSID ; do
+		ssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\)\(:..:..:..:..:..:..\).*/\1/p'\`
+		bssid_token=\`echo \"\$token\" | sed -ne 's/\(.*\):\(..:..:..:..:..:..\).*/\2/p'\`
+
+		if [ -z \"\$ssid_token\" ] ; then
+			ssid_token=\"\$token\"
+		fi
+
+		wlan_scan_one \$1 \"\$ssid_token\" \"\$bssid_token\"
+		if [ \$? = 0 ] ; then
+			sleep 1
+			return 0
+		fi
+	done"
+	eval "$cmd"
+
+	# We got to the end of the list.  Maybe try "any"
+	if is_true "$WLAN_ANY" ; then
+		wlan_scan_one $1
+		sleep 1
+		return $?
+	fi
+
+	sleep 1
+	return 1
+}
+
+
+wlan_scan_one ()
+{
+	# $1 == wlandev, [ $2 == ssid, $3 == bssid, $4 == append ]
+
+    if [ -z "$4" ] ; then
+	append=true
+    else
+	append=false
+    fi
+
+	numbss=0
+
+	result=`$WLANCTL $1 dot11req_scan bsstype=any bssid=ff:ff:ff:ff:ff:ff \
+		scantype=active probedelay=0 channellist=$ChannelList ssid="$2" \
+		minchanneltime=$ChannelMinTime maxchanneltime=$ChannelMaxTime append=$append`
+	eval $result
+	if [ $resultcode != 'success' ] ; then
+		${ECHO} "Scan failed ($resultcode) "
+		return 1
+	fi
+
+	## XXX if numbss == 0, repeat with $2 $3 $4?
+
+	i=0
+	bssfound=""
+
+	# walk through the results and do first-cut matching.
+	while [ $i -lt $numbss ] ; do
+		result=`$WLANCTL $1 dot11req_scan_results bssindex=$i`
+		eval $result
+
+		if [ -n "$3" ] ; then
+                        if [ "$3" = "$bssid" ] ; then
+                               bssfound="$bssfound $i"
+			fi
+		elif [ -z "$2" ] ; then
+			# if our ssid is "", then we pick the first entry.
+			bssfound="$bssfound $i"
+		elif [ "$2" = "$ssid" ] ; then
+			bssfound="$bssfound $i"
+		fi
+		i=`expr $i + 1`
+	done
+
+	if [ -z "$bssfound" ]; then	# No BSSs found, bail.
+		return 1
+	else
+		# Now find the closest
+		bigsignal=0
+		for i in $bssfound ; do
+			result=`$WLANCTL $1 dot11req_scan_results bssindex=$i`
+			eval $result
+			if [ $bigsignal -lt $signal ]; then
+				bigsignal=$signal
+				bigbssindex=$i
+			fi
+		done
+		result=`$WLANCTL $1 dot11req_scan_results bssindex=$bigbssindex`
+		eval $result
+		return 0
+	fi
+}
+
+wlan_wep ()
+{
+	# $1 == wlandev
+
+	#=======WEP===========================================
+	# Setup privacy
+	if [ ${dot11PrivacyInvoked:-"false"} = "false" ] ; then
+		return 0;
+	fi
+
+	result=`$WLANCTL $1 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented`
+	if [ $? = 0 ] ; then
+		eval $result
+		eval $mibattribute
+	else
+		${ECHO} "dot11PrivacyOptionImplemented mibget failed."
+		return 1
+	fi
+
+	if [ $dot11PrivacyOptionImplemented = "false" ] ; then
+		${ECHO} "Cannot enable privacy, dot11PrivacyOptionImplemented=false."
+		return 1
+	fi
+
+	# Do we want host-based WEP?
+	result=`$WLANCTL $1 lnxreq_hostwep \
+	    decrypt="${lnxreq_hostWEPDecrypt:-false}"    \
+	    encrypt="${lnxreq_hostWEPEncrypt:-false}"`
+
+	# set up the rest of the parametsrs.
+	if [ $dot11PrivacyOptionImplemented = "true" -a \
+	     $dot11PrivacyInvoked = "true" ] ; then
+		result=`$WLANCTL $1 dot11req_mibset \
+			  mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked`
+		if [ "${PRIV_GENSTR:-empty}" != "empty" ] ; then
+			if [ ${PRIV_KEY128:-"false"} = "false" ]; then
+				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 5`
+			else
+				keys=`$PRIV_GENERATOR "$PRIV_GENSTR" 13`
+			fi
+				knum=0
+			for i in $keys ; do
+				result=`$WLANCTL $1 dot11req_mibset \
+				mibattribute=dot11WEPDefaultKey$knum=$i`
+				knum=`expr $knum + 1`
+			done
+		else 
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2 `
+			result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3 `
+		fi
+	else
+		# disable wep explicitly.
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked `
+		result=`$WLANCTL $1 dot11req_mibset \
+			mibattribute=dot11ExcludeUnencrypted=false `
+	fi
+}
+
+wlan_adhoc ()
+{
+	# $1 == wlandev
+
+	#=======IBSS STARTUP==================================
+	startcmd="$WLANCTL $1 dot11req_start "
+	startcmd="$startcmd ssid=$DesiredSSID"
+	startcmd="$startcmd bsstype=independent"
+	startcmd="$startcmd beaconperiod=$BCNINT" 
+	startcmd="$startcmd dtimperiod=3"
+	startcmd="$startcmd cfpollable=false"
+	startcmd="$startcmd cfpollreq=false"
+	startcmd="$startcmd cfpperiod=3"
+	startcmd="$startcmd cfpmaxduration=100"
+	startcmd="$startcmd probedelay=100"
+	startcmd="$startcmd dschannel=$CHANNEL"
+	j=1
+	for i in $BASICRATES ; do
+		startcmd="$startcmd basicrate$j=$i"
+		j=`expr $j + 1`
+		done
+
+	j=1
+	for i in $OPRATES ; do
+		startcmd="$startcmd operationalrate$j=$i"
+		j=`expr $j + 1`
+	done
+
+	results=`$startcmd`	# Here's where it runs
+	if [ $? = 0 ]; then 
+		eval $results
+		if [ $resultcode != "success" ] ; then 
+			${ECHO} "IBSS not started, resultcode=$resultcode"
+			exit 1
+		else
+			${ECHO} "IBSS mode started."
+		fi
+	else
+		${ECHO} FAILED: $startcmd
+		return 1
+	fi
+	WLAN_SCHEMESSID="$DesiredSSID"
+}
+
+wlan_infra ()
+{
+	# $1 == wlandev
+
+	#==== INFRASTRUCURE STARTUP===========================
+	# XXX TODO:  Grok DesiredBSSID
+
+	sleep 5
+	results=`$WLANCTL $1 lnxreq_autojoin \
+		"ssid=$DesiredSSID" \
+		authtype=${AuthType:="opensystem"} | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'`
+	eval $results
+	if [ ${resultcode:-"failure"} != "success" ] ; then
+		${ECHO} 'error: Autojoin indicated failure!'
+		return 1;
+	fi
+
+	WLAN_SCHEMESSID="$DesiredSSID"
+}
+
+wlan_dot11_join ()
+{
+	# $1 == wlandev
+
+	joincmd="$WLANCTL $1 dot11req_join bssid=$DesiredBSSID"
+	joincmd="$joincmd joinfailuretimeout=1"
+	
+	j=1
+	for i in $OPRATES ; do
+		joincmd="$joincmd operationalrate$j=$i"
+		j=`expr $j + 1`
+	done
+
+	results=`$joincmd`
+
+	eval $results
+	if [ ${resultcode:-"failure"} != "success" ] ; then
+		${ECHO} "$1: JOIN Failure"
+		${ECHO} "joincmd=$joincmd"
+		${ECHO} "results=$results"
+		return 1;
+	fi
+}
+
+wlan_dot11_auth_assoc ()
+{
+    # $1 == wlandev
+	if [ $bsstype = "infrastructure" ] ; then 
+		results=`$WLANCTL $1 dot11req_authenticate \
+				peerstaaddress=$DesiredBSSID \
+				authenticationtype=$AuthType \
+				authenticationfailuretimeout=2000`
+		eval $results
+		if [ ${resultcode:-"failure"} != "success" ] ; then
+			${ECHO} "error:  dot11req_authenticate failed, "\
+				"resultcode=$resultcode"
+			return 1;
+		fi
+		results=`$WLANCTL $1 dot11req_associate \
+				listeninterval=1000 \
+				associatefailuretimeout=2000 `
+		if [ ${resultcode:-"failure"} != "success" ] ; then
+			${ECHO} 'error:  dot11req_associate failed!'
+			return 1;
+		fi
+	fi
+}
+
+wlan_set_ssid_schemefile ()
+{
+	# $1 == SSID
+
+	# Find the scheme file 
+	if [ -r /var/lib/misc/pcmcia-scheme ] ; then
+		# Debian
+		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme"
+	elif [ -d /var/state/pcmcia ] ; then
+		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme"
+	elif [ -d /var/lib/pcmcia ] ; then
+        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme"
+	else
+		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme"
+	fi
+
+	# Collect the current scheme name and save the file
+	if [ -r $WLAN_SCHEMEFILE ] ; then
+		WLAN_SCHEME=`cat $WLAN_SCHEMEFILE`
+		cp $WLAN_SCHEMEFILE /var/run/wlan_scheme_`date +"%T"`.tmp
+	else
+		touch /var/run/wlan_scheme_`date +"%T"`.tmp
+		
+	fi
+
+	# Set up the <scheme:SSID> string
+	if [ ! "$WLAN_SCHEME" ] ; then 
+		WLAN_SCHEME="default"
+	fi
+	WLAN_SCHEME="$WLAN_SCHEME:$1"
+
+	# Write to schemefile
+	echo $WLAN_SCHEME > $WLAN_SCHEMEFILE
+}
+
+wlan_restore_schemefile ()
+{
+	# Find the scheme file 
+	if [ -r /var/lib/misc/pcmcia-scheme ] ; then
+		# Debian
+		WLAN_SCHEMEFILE="/var/lib/misc/pcmcia-scheme"
+	elif [ -d /var/state/pcmcia ] ; then
+		WLAN_SCHEMEFILE="/var/state/pcmcia/scheme"
+	elif [ -d /var/lib/pcmcia ] ; then
+        	WLAN_SCHEMEFILE="/var/lib/pcmcia/scheme"
+	else
+		WLAN_SCHEMEFILE="/var/run/pcmcia-scheme"
+	fi
+
+	TMPFILE=`ls /var/run/wlan_scheme*.tmp | tail -n 1`
+
+	if [ -r $TMPFILE ] ; then
+		cat $TMPFILE > $WLAN_SCHEMEFILE
+		rm -f $TMPFILE
+	else
+		${ECHO} "wlan_restore_schemefile: No wlan_scheme\*.tmp file found."
+	fi
+}
+
+wlan_bring_it_up ()
+{
+    # $1 == wlandev
+    # $2 == non-null if wext enabled.
+
+    #=======ENABLE========================================
+    # Do we want to init the card at all?
+    eval 'WLAN_ENABLE=$ENABLE_'$1
+
+    if ! is_true $WLAN_ENABLE ; then
+	return 1
+    fi
+    
+    if wlan_enable $1 ; then
+	if [ -z "$2" ] ; then
+	    wlan_scan_and_join $1
+	    return $?
+	else
+	    ${ECHO} "Bypassing configuration due to wireless extensions"
+	fi	
+    else
+	return 1;
+    fi
+
+    return 1
+}
+
+wlan_scan_and_join ()
+{
+    #=======MAC STARTUP=========================================
+    wlan_supports_scan $1
+    if [ $? = 0 ] ; then
+	wlan_scan $1 
+	if [ $? = 0 ] ; then
+	    wlan_source_config_for_ssid "$ssid" "$bssid"
+	    
+	    wlan_user_mibs $1
+	    wlan_wep $1
+	    
+	    wlan_join $1
+	else
+	    if is_true $IS_ADHOC ; then     
+		# start an IBSS; we didn't find one.
+		wlan_adhoc $1
+	    else
+		return 1
+	    fi
+	fi
+    else
+	wlan_source_config $1
+	
+	wlan_user_mibs $1
+	wlan_wep $1
+	
+	if is_true $IS_ADHOC ; then     
+	    wlan_adhoc $1
+	else
+	    wlan_infra $1
+	fi
+    fi
+    
+    return $?
+}
+
+wlan_join ()
+{
+    # $1 == wlandev
+    grep 'autojoin' /proc/net/p80211/$1/wlandev > /dev/null
+    if [ $? = 0 ]; then
+	wlan_infra $1
+    else
+	wlan_dot11_join $1
+	wlan_dot11_auth_assoc $1
+    fi
+}
+
+tmpname ()
+{
+	# $1 == prefix
+	local i=0
+	local tname=$TMPDIR/${1}_$$
+	if [ -f ${tname}.tmp ] ; then
+		for i in 0 1 2 3 4 5 6 7 8 9 ; do
+			if [ ! -f ${tname}_${i}.tmp ] ; then
+				echo ${tname}_${i}.tmp 
+				return 0
+			fi
+		done
+	else
+		echo ${tname}.tmp
+	fi
+	return 0
+}
+
+source_procfile ()
+{
+	# $1 == procfile to source
+	local fname=`tmpname wlan_procfile`
+	cat "$1" > $fname
+	. $fname
+	rm -f $fname
+}
+
+# This is set by the Configure script as part of 'make install'
+#FIRMWARE_DIR="/usr/share/linux-wlan"
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh
new file mode 100644
index 0000000..879dd14
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan-udev.sh
@@ -0,0 +1,46 @@
+#! /bin/bash
+
+
+# script to start prism2 wlan for fedora FC5 udev 
+#udev rule
+#ACTION=="add",BUS=="usb",DRIVER=="prism2_usb",RUN+="/etc/wlan/wlan-udev.sh %k"
+
+# 01-01-2007 (rsk) add check for wlan_wext_write
+# 31-01-2007 (rsk) get the check right this time :)
+
+WEXT_PARAM=/sys/module/p80211/parameters/wlan_wext_write
+
+DEVICE=$1
+WLAN_UDEV=1
+
+. /etc/wlan/shared
+
+if [ -f $WEXT_PARAM ]; then
+    WLAN_WEXT=`cat $WEXT_PARAM`
+fi
+
+if [ $WLAN_WEXT = 1 ]; then
+    wlan_bring_it_up $DEVICE TRUE
+	# set encrypt on card not host
+	result=`$WLANCTL $DEVICE lnxreq_hostwep decrypt="false" encrypt="false"`
+	if [ $? != 0 ]; then
+	    echo "Cannot enable wep $result"
+	    exit 1
+	fi
+else
+    echo calling wlan_bring_it_up
+    wlan_bring_it_up $DEVICE
+
+    if [ $? = 0 ] ; then
+	echo $DEVICE start OK
+        #allow time during boot to let other things start
+	#sleep 5
+	/sbin/ifup $DEVICE
+    else
+	echo $DEVICE failed to come up! >&2
+	exit 1
+    fi
+fi
+exit 0
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf
new file mode 100644
index 0000000..fc8dcfa
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlan.conf
@@ -0,0 +1,84 @@
+#! /bin/sh 
+# Wireless LAN adapter configuration
+#
+# etc/wlan/wlan.conf
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+# This file is sourced by all configuration scripts.
+#
+# The WLAN_DEVICES variable identifies the device names of each WLAN device.
+# If you have more than one, make sure each one is identified in a whitespace
+# separated list that's assigned to WLAN_DEVICES.
+
+WLAN_DEVICES="wlan0"
+
+# Below is the list of channels to scan, when we scan.
+ChannelList="01:02:03:04:05:06:07:08:09:0a:0b:00:00:00"
+# Below is the min and max time we linger on a channel during a scan.
+ChannelMinTime=200
+ChannelMaxTime=250
+# And here we have the master scan toggle. 
+WLAN_SCAN=n
+
+# if you want temporary files to go elsewhere, change this.
+TMPDIR=/tmp
+
+##########
+# Note:  To bind to a specific network, change the SSID to something different
+#        and create the file /etc/wlan/wlancfg-<SSID> with your network-
+#        specific settings.  If this file is not present, the settings in
+#        /etc/wlancfg/wlancfg-DEFAULT are used.
+#
+# for example:
+#    SSID_wlan0="linux-wlan"
+# This expects a file called "/etc/wlan/wlancfg-linux-wlan" to be present.
+#
+# Use a SSID of "" to associate with any network in range.
+#########
+
+SSID_wlan0=""
+ENABLE_wlan0=y
+#SSID_wlan1=""
+#ENABLE_wlan1=n
+#SSID_wlan2=""
+#ENABLE_wlan2=n
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT
new file mode 100644
index 0000000..d916034
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/etc/wlan/wlancfg-DEFAULT
@@ -0,0 +1,43 @@
+#=======USER MIB SETTINGS=============================
+# You can add the assignments for various MIB items
+#  of your choosing to this variable, separated by 
+#  whitespace.  The wlan-ng script will then set each one.
+# Just uncomment the variable and set the assignments 
+#  the way you want them.
+
+#USER_MIBS="p2CnfRoamingMode=1 p2CnfShortPreamble=mixed"
+
+#=======WEP===========================================
+# [Dis/En]able WEP.  Settings only matter if PrivacyInvoked is true
+lnxreq_hostWEPEncrypt=false     # true|false
+lnxreq_hostWEPDecrypt=false     # true|false
+dot11PrivacyInvoked=false	# true|false
+dot11WEPDefaultKeyID=0		# 0|1|2|3
+dot11ExcludeUnencrypted=true	# true|false, in AP this means WEP is required.
+
+# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate 
+#  keys (just a convenience)
+# add-ons/ in the tarball contains other key generators.
+PRIV_GENERATOR=/sbin/nwepgen	# nwepgen, Neesus compatible
+PRIV_KEY128=false		# keylength to generate
+PRIV_GENSTR=""
+
+# or set them explicitly.  Set genstr or keys, not both.
+dot11WEPDefaultKey0=		# format: xx:xx:xx:xx:xx   or
+dot11WEPDefaultKey1=		#         xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
+dot11WEPDefaultKey2=		#  e.g.   01:20:03:40:05   or
+dot11WEPDefaultKey3=		#         01:02:03:04:05:06:07:08:09:0a:0b:0c:0d
+#=======SELECT STATION MODE===================
+IS_ADHOC=n 			# y|n, y - adhoc, n - infrastructure
+
+#======= INFRASTRUCTURE STATION  ===================
+# What kind of authentication?
+AuthType="opensystem"		# opensystem | sharedkey (requires WEP)
+
+#======= ADHOC STATION ============================
+BCNINT=100			# Beacon interval (in Kus)
+CHANNEL=6			# DS channel for BSS (1-14, depends 
+				#   on regulatory domain)
+BASICRATES="2 4"		# Rates for mgmt&ctl frames (in 500Kb/s)
+OPRATES="2 4 11 22"		# Supported rates in BSS (in 500Kb/s)
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries
new file mode 100644
index 0000000..f402324
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/entries
@@ -0,0 +1,232 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/man
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2006-02-09T20:15:14.148570Z
+1769
+solomon
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+wlancfg.1
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+8d6d24819318647f9e68c31ed4619e8b
+2004-08-04T21:09:28.000000Z
+1626
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1451
+
+nwepgen.1
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+7bcff37c22b6ceccc22c23b83b143423
+2004-08-04T21:09:28.000000Z
+1626
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+418
+
+wland.1
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+8a9c8ca2490b513fa90c30d1438ab8e7
+2004-08-04T21:09:28.000000Z
+1626
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+475
+
+wlanctl-ng.1
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+3741ade29a72403e8209ddeff63aea9d
+2004-08-04T21:09:28.000000Z
+1626
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+777
+
+prism2dl.1
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+51da46f6de113e84ed3c93fcd045dd5f
+2006-02-09T20:15:14.148570Z
+1769
+solomon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2848
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:02.000000Z
+f3cff49acafb664a6784ec0dcc9c5903
+2005-01-26T22:01:07.661267Z
+1678
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2143
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/nwepgen.1.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlancfg.1.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wlanctl-ng.1.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/prop-base/wland.1.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..4b68c73
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,57 @@
+# man/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+all:
+	@echo "Nothing to do..."
+
+install:
+	mkdir -p $(TARGET_ROOT_ON_HOST)/usr/local/man/man1
+	cp *.1 	$(TARGET_ROOT_ON_HOST)/usr/local/man/man1
+
+clean:
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base
new file mode 100644
index 0000000..5c803ed
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/nwepgen.1.svn-base
@@ -0,0 +1,13 @@
+.TH NWEPGEN 8
+.SH NAME
+nwepgen \- generates Neesus Datacom compatible WEP keys
+.SH SYNOPSIS
+.B nwepgen genstr length
+.SH DESCRIPTION
+.B nwepgen
+generates Neesus Datacom compatible WEP keys from a string. You will
+typically not run it by hand, but it is called by the linux-wlan-ng
+initialization scripts if you specify a WEP key string in the config file.
+.P
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base
new file mode 100644
index 0000000..0f4758d
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/prism2dl.1.svn-base
@@ -0,0 +1,93 @@
+.TH PRISM2DL 8
+.SH NAME
+prism2dl \- 802.11 frame dump utility
+.SH SYNOPSIS
+.B prism2dl [OPTIONS] devname
+.SH DESCRIPTION
+.B prism2dl
+User utility for downloading prism2 images
+.SH OPTIONS
+.TP
+.B -s (status)
+Show CIS, PDA from card and exit
+.TP
+.B -v (verbose)
+Show more status info during operation
+.TP
+.B -V (Version)
+Show version and exit
+.TP
+.B -n (nowrite)
+Do all processing, including card PDA read but do not write to card
+.TP
+.B -d (debug)
+Do all processing, excluding card PDA read but do not write to card. A valid
+interface name is _not_ required for this mode.
+.TP
+.B -g (generate)
+Show the PDA in a format readable by this program.  Useful for saving the
+existing from a card.
+.SH IMAGEFILE OPTIONS
+.TP
+.B -r <file> (ram)
+Load SREC file to card RAM.  This option may be specified multiple times.
+If the value is "stdin", the file will be read from stdin and the option
+may only be specified once.
+.TP
+.B -f <file> (flash)
+Load SREC file to card FLASH. This option may be specified multiple times.
+If the value is "stdin", the file will be read from stdin and the option
+may only be specified once.
+.SH PDA OPTIONS
+.TP
+.B -a <file> (addpdr)
+Add the PDRs from file to the PDA from card. This option may be specified
+multiple times.
+.TP
+.B -p <file> (pda)
+Replace the card PDA with the contents of file.
+.TP
+.B -m <haddr> (macaddr)
+Overwrite the MAC address PDR with the given value.
+<addr> ::= xx:xx:xx:xx:xx:xx, where xx is a two digit hex number.
+.TP
+.B -S <str> (Sernum)
+Overwrite the serial number PDR with the given string. String must be <= 12
+characters, any extra will be truncated.
+.TP
+.B -l <adrr> (padloc)
+PDA location in card memory.  Commonly values:
+  HFA3841 ==> 0x003f0000
+  HFA3842 ==> 0x007f0000
+.TP
+.B devname
+Linux device name (e.g. eth0, wlan0)
+.SH EXAMPLES
+Review card status:
+  prism2dl -s wlan0
+
+Load a new PDA:
+  prism2dl -p pdafile.txt wlan0
+ or
+  prism2dl -p pdafile.txt -a pda1.txt -a pda2.txt wlan0
+
+  Note that the f/w images will most likely contain bogus plug info after
+  rewriting the PDA by itself.  It is generally recommended to reload the 
+  primage and secondary images at the same time as modifying the PDA.
+
+Load a FLASH image _and_ PDA:
+  prism2dl -p pdafile.txt -f CIS.hex -f primary.hex -f secondary.hex wlan0
+
+Load a RAM image:
+  prism2dl -a pda1.txt -r tertiary.hex
+
+Note: PDA records are additive starting with the records from the card
+   OR the records from the -p specified file.  -a specified file(s)
+   overwrite, append, or remove records one at a time.  If multiple
+   files are specified using the -a option, the files are processed
+   from left to right.  This implies that a record removed from the
+   current working PDA may then be added again by a record that
+   appears after the "remove" record in the file set.
+.P
+.SH AUTHOR
+This minimal man page was written by Victor Seva.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base
new file mode 100644
index 0000000..257ccd8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlancfg.1.svn-base
@@ -0,0 +1,54 @@
+.TH WLANCFG 8
+.SH NAME
+wlancfg \- manupulate linux-wlan-ng MIB values
+.SH SYNOPSIS
+.B wlancfg query dev
+.P
+.B wlancfg show dev [all]
+.P
+.B wlancfg set dev
+.P
+.B wlancfg list
+.P
+.B wlancfg version
+.SH DESCRIPTION
+The wlancfg utility program provides an alternative method to
+.B wlanctl-ng (1)
+, for manipulating MIB values.  It was designed to provide
+an easier mechanism for saving and restoring the complete wireless
+configuration (i.e. when re-starting the device driver) and to provide
+a more efficient mechanism for GUI's to query multiple MIB's.
+.SH OPTIONS
+.TP
+.B dev
+The name of the device (e.g., wlan0).
+.TP
+.B query
+Read MIB names (separated by whitespace) from stdin
+and output their values (separated by carriage returns)
+to stdout.  The MIB's may be either read/write or
+read-only.
+.TP
+.B show
+Query the values of all supported read/write MIB's and
+output their values (separated by carriage returns) to
+stdout. The syntax of the output will be:
+  name=value
+.RS
+If the "all" parameter is specified, then all supported
+MIB's (i.e. read-only MIB's as well) are output.
+.RE
+.TP
+.B set
+Read MIB name/value pairs (separated by carriage returns)
+from stdin and set the values of the specified MIB's.  The
+pairs must have the same syntax as above.  The MIB's must
+be read/write.
+.TP
+.B list
+Display a list of all supported MIB's.
+.TP
+.B version
+Display the compiled version of wlancfg.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base
new file mode 100644
index 0000000..4c6186a
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wlanctl-ng.1.svn-base
@@ -0,0 +1,27 @@
+.TH WLANCTL-NG 8
+.SH NAME
+wlanctl-ng \- control utility for linux-wlan-ng 802.11 devices
+.SH SYNOPSIS
+.B wlanctl-ng interface|verson|commands|mibs cmd cmdarg [cmdarg..]
+.SH DESCRIPTION
+The wlanctl-ng utility program is used to set up linux-wlan-ng 802.11
+devices. linux-wlan-ng devices are configured using a MIB.
+.P
+Only experts will want to use this program, as it is quite complicated.
+Everyone else edits a config file and uses a script that runs this program
+as necessary.
+.SH OPTIONS
+.TP
+.B commands
+Output a list of all available commands.
+.TP
+.B mibs
+Outputs a list of available mibs.
+.TP
+.B version
+Outputs the version of the program.
+.TP
+.B interface
+The name of a wireless network interface, such as wlan0.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base
new file mode 100644
index 0000000..02250e1
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/.svn/text-base/wland.1.svn-base
@@ -0,0 +1,23 @@
+.TH WLAND 8
+.SH NAME
+wland \- linux-wlan-ng daemon
+.SH SYNOPSIS
+.B wland [-V|-v] [-d wlandpath] [-u]
+.SH DESCRIPTION
+.B wland
+is a daemon for receiving and handling events from 802.11 services and
+MAC-specific linux-wlan-ng drivers. It is not currently used.
+.SH OPTIONS
+.TP
+.B -V
+.TP
+.B -v
+Display version number.
+.TP
+.B -d wlandpath
+Specify the directory to run in.
+.TP 
+.B -u
+Do not daemonize; run in foreground.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile
new file mode 100644
index 0000000..4b68c73
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/Makefile
@@ -0,0 +1,57 @@
+# man/Makefile
+#
+# Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
+# --------------------------------------------------------------------
+#
+# linux-wlan
+#
+#   The contents of this file are subject to the Mozilla Public
+#   License Version 1.1 (the "License"); you may not use this file
+#   except in compliance with the License. You may obtain a copy of
+#   the License at http://www.mozilla.org/MPL/
+#
+#   Software distributed under the License is distributed on an "AS
+#   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+#   implied. See the License for the specific language governing
+#   rights and limitations under the License.
+#
+#   Alternatively, the contents of this file may be used under the
+#   terms of the GNU Public License version 2 (the "GPL"), in which
+#   case the provisions of the GPL are applicable instead of the
+#   above.  If you wish to allow the use of your version of this file
+#   only under the terms of the GPL and not to allow others to use
+#   your version of this file under the MPL, indicate your decision
+#   by deleting the provisions above and replace them with the notice
+#   and other provisions required by the GPL.  If you do not delete
+#   the provisions above, a recipient may use your version of this
+#   file under either the MPL or the GPL.
+#
+# --------------------------------------------------------------------
+#
+# Inquiries regarding the linux-wlan Open Source project can be
+# made directly to:
+#
+# AbsoluteValue Systems Inc.
+# info@linux-wlan.com
+# http://www.linux-wlan.com
+#
+# --------------------------------------------------------------------
+#
+# Portions of the development of this software were funded by 
+# Intersil Corporation as part of PRISM(R) chipset product development.
+#
+# --------------------------------------------------------------------
+
+-include ../config.mk
+
+all:
+	@echo "Nothing to do..."
+
+install:
+	mkdir -p $(TARGET_ROOT_ON_HOST)/usr/local/man/man1
+	cp *.1 	$(TARGET_ROOT_ON_HOST)/usr/local/man/man1
+
+clean:
+	rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags
+	for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
+	
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1
new file mode 100644
index 0000000..5c803ed
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/nwepgen.1
@@ -0,0 +1,13 @@
+.TH NWEPGEN 8
+.SH NAME
+nwepgen \- generates Neesus Datacom compatible WEP keys
+.SH SYNOPSIS
+.B nwepgen genstr length
+.SH DESCRIPTION
+.B nwepgen
+generates Neesus Datacom compatible WEP keys from a string. You will
+typically not run it by hand, but it is called by the linux-wlan-ng
+initialization scripts if you specify a WEP key string in the config file.
+.P
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1
new file mode 100644
index 0000000..0f4758d
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/prism2dl.1
@@ -0,0 +1,93 @@
+.TH PRISM2DL 8
+.SH NAME
+prism2dl \- 802.11 frame dump utility
+.SH SYNOPSIS
+.B prism2dl [OPTIONS] devname
+.SH DESCRIPTION
+.B prism2dl
+User utility for downloading prism2 images
+.SH OPTIONS
+.TP
+.B -s (status)
+Show CIS, PDA from card and exit
+.TP
+.B -v (verbose)
+Show more status info during operation
+.TP
+.B -V (Version)
+Show version and exit
+.TP
+.B -n (nowrite)
+Do all processing, including card PDA read but do not write to card
+.TP
+.B -d (debug)
+Do all processing, excluding card PDA read but do not write to card. A valid
+interface name is _not_ required for this mode.
+.TP
+.B -g (generate)
+Show the PDA in a format readable by this program.  Useful for saving the
+existing from a card.
+.SH IMAGEFILE OPTIONS
+.TP
+.B -r <file> (ram)
+Load SREC file to card RAM.  This option may be specified multiple times.
+If the value is "stdin", the file will be read from stdin and the option
+may only be specified once.
+.TP
+.B -f <file> (flash)
+Load SREC file to card FLASH. This option may be specified multiple times.
+If the value is "stdin", the file will be read from stdin and the option
+may only be specified once.
+.SH PDA OPTIONS
+.TP
+.B -a <file> (addpdr)
+Add the PDRs from file to the PDA from card. This option may be specified
+multiple times.
+.TP
+.B -p <file> (pda)
+Replace the card PDA with the contents of file.
+.TP
+.B -m <haddr> (macaddr)
+Overwrite the MAC address PDR with the given value.
+<addr> ::= xx:xx:xx:xx:xx:xx, where xx is a two digit hex number.
+.TP
+.B -S <str> (Sernum)
+Overwrite the serial number PDR with the given string. String must be <= 12
+characters, any extra will be truncated.
+.TP
+.B -l <adrr> (padloc)
+PDA location in card memory.  Commonly values:
+  HFA3841 ==> 0x003f0000
+  HFA3842 ==> 0x007f0000
+.TP
+.B devname
+Linux device name (e.g. eth0, wlan0)
+.SH EXAMPLES
+Review card status:
+  prism2dl -s wlan0
+
+Load a new PDA:
+  prism2dl -p pdafile.txt wlan0
+ or
+  prism2dl -p pdafile.txt -a pda1.txt -a pda2.txt wlan0
+
+  Note that the f/w images will most likely contain bogus plug info after
+  rewriting the PDA by itself.  It is generally recommended to reload the 
+  primage and secondary images at the same time as modifying the PDA.
+
+Load a FLASH image _and_ PDA:
+  prism2dl -p pdafile.txt -f CIS.hex -f primary.hex -f secondary.hex wlan0
+
+Load a RAM image:
+  prism2dl -a pda1.txt -r tertiary.hex
+
+Note: PDA records are additive starting with the records from the card
+   OR the records from the -p specified file.  -a specified file(s)
+   overwrite, append, or remove records one at a time.  If multiple
+   files are specified using the -a option, the files are processed
+   from left to right.  This implies that a record removed from the
+   current working PDA may then be added again by a record that
+   appears after the "remove" record in the file set.
+.P
+.SH AUTHOR
+This minimal man page was written by Victor Seva.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1
new file mode 100644
index 0000000..257ccd8
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlancfg.1
@@ -0,0 +1,54 @@
+.TH WLANCFG 8
+.SH NAME
+wlancfg \- manupulate linux-wlan-ng MIB values
+.SH SYNOPSIS
+.B wlancfg query dev
+.P
+.B wlancfg show dev [all]
+.P
+.B wlancfg set dev
+.P
+.B wlancfg list
+.P
+.B wlancfg version
+.SH DESCRIPTION
+The wlancfg utility program provides an alternative method to
+.B wlanctl-ng (1)
+, for manipulating MIB values.  It was designed to provide
+an easier mechanism for saving and restoring the complete wireless
+configuration (i.e. when re-starting the device driver) and to provide
+a more efficient mechanism for GUI's to query multiple MIB's.
+.SH OPTIONS
+.TP
+.B dev
+The name of the device (e.g., wlan0).
+.TP
+.B query
+Read MIB names (separated by whitespace) from stdin
+and output their values (separated by carriage returns)
+to stdout.  The MIB's may be either read/write or
+read-only.
+.TP
+.B show
+Query the values of all supported read/write MIB's and
+output their values (separated by carriage returns) to
+stdout. The syntax of the output will be:
+  name=value
+.RS
+If the "all" parameter is specified, then all supported
+MIB's (i.e. read-only MIB's as well) are output.
+.RE
+.TP
+.B set
+Read MIB name/value pairs (separated by carriage returns)
+from stdin and set the values of the specified MIB's.  The
+pairs must have the same syntax as above.  The MIB's must
+be read/write.
+.TP
+.B list
+Display a list of all supported MIB's.
+.TP
+.B version
+Display the compiled version of wlancfg.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1
new file mode 100644
index 0000000..4c6186a
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wlanctl-ng.1
@@ -0,0 +1,27 @@
+.TH WLANCTL-NG 8
+.SH NAME
+wlanctl-ng \- control utility for linux-wlan-ng 802.11 devices
+.SH SYNOPSIS
+.B wlanctl-ng interface|verson|commands|mibs cmd cmdarg [cmdarg..]
+.SH DESCRIPTION
+The wlanctl-ng utility program is used to set up linux-wlan-ng 802.11
+devices. linux-wlan-ng devices are configured using a MIB.
+.P
+Only experts will want to use this program, as it is quite complicated.
+Everyone else edits a config file and uses a script that runs this program
+as necessary.
+.SH OPTIONS
+.TP
+.B commands
+Output a list of all available commands.
+.TP
+.B mibs
+Outputs a list of available mibs.
+.TP
+.B version
+Outputs the version of the program.
+.TP
+.B interface
+The name of a wireless network interface, such as wlan0.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1 b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1
new file mode 100644
index 0000000..02250e1
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/man/wland.1
@@ -0,0 +1,23 @@
+.TH WLAND 8
+.SH NAME
+wland \- linux-wlan-ng daemon
+.SH SYNOPSIS
+.B wland [-V|-v] [-d wlandpath] [-u]
+.SH DESCRIPTION
+.B wland
+is a daemon for receiving and handling events from 802.11 services and
+MAC-specific linux-wlan-ng drivers. It is not currently used.
+.SH OPTIONS
+.TP
+.B -V
+.TP
+.B -v
+Display version number.
+.TP
+.B -d wlandpath
+Specify the directory to run in.
+.TP 
+.B -u
+Do not daemonize; run in foreground.
+.SH AUTHOR
+This minimal man page was written by Joey Hess.
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git
new file mode 100644
index 0000000..70c7573
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scm-moved-to-git
@@ -0,0 +1,11 @@
+On August 17, 2008 linux-wlan-ng moved to using git as its SCM.
+
+Read-only access can be obtained via:
+
+	git clone git://git.shaftnet.org/linux-wlan-ng.git
+
+gitweb access can be obtained via:
+
+	http://git.shaftnet.org/git/gitweb.cgi?p=linux-wlan-ng.git;a=summary
+
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base
new file mode 100644
index 0000000..1a8363b
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/dir-prop-base
@@ -0,0 +1,8 @@
+K 10
+svn:ignore
+V 23
+get_version
+make.opts
+
+
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries
new file mode 100644
index 0000000..1f4156e
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/entries
@@ -0,0 +1,164 @@
+9
+
+dir
+1870
+svn://svn.shaftnet.org/linux-wlan-ng/trunk/scripts
+svn://svn.shaftnet.org/linux-wlan-ng
+
+
+
+2008-08-12T13:17:35.118175Z
+1868
+pizza
+has-props
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+7c16ee9a-e2ed-0310-ae25-9f6e1be264fe
+
+get_version.c
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+28a802bf81fdd843b9fceab4cefa67a3
+2006-08-21T14:49:06.038127Z
+1796
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+144
+
+Makefile.get_options
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+394bde240e5a4dbf73109f16cb933ff4
+2008-08-12T13:17:35.118175Z
+1868
+pizza
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+411
+
+Makefile
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+1d3dc7da1e2009ca5ca029315c1c0de6
+2002-09-03T17:47:11.000000Z
+1054
+solomon
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+939
+
+pda.pl
+file
+
+
+
+
+2009-01-07T08:13:01.000000Z
+cb2f8a47e96b9051c3b0fd68749b12d3
+2001-03-11T03:18:54.000000Z
+567
+mark
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5036
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/format
@@ -0,0 +1 @@
+9
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.get_options.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/Makefile.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base
new file mode 100644
index 0000000..7b57b30
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/get_version.c.svn-base
@@ -0,0 +1,9 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base
new file mode 100644
index 0000000..5336d10
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/prop-base/pda.pl.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 14
+svn:executable
+V 1
+*
+K 12
+svn:keywords
+V 23
+Author Date Id Revision
+END
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base
new file mode 100644
index 0000000..d8a1524
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.get_options.svn-base
@@ -0,0 +1,10 @@
+KERNEL_VERSION := $(shell $(CURR_DIR)/get_version)
+KERNEL_RELEASE := $(shell echo $(KERNEL_VERSION) | cut -d\" -f2| cut -c-5)
+
+include Makefile
+
+get_version_target:
+	echo "KERNEL_RELEASE=$(KERNEL_VERSION)" >> $(CURR_DIR)/make.opts
+	echo "CROSS_COMPILE='$(CROSS_COMPILE)'" >> $(CURR_DIR)/make.opts
+	echo "HOST_CC='$(HOSTCC)'" >> $(CURR_DIR)/make.opts
+	echo "HOST_CFLAGS='$(HOSTCFLAGS)'" >> $(CURR_DIR)/make.opts
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base
new file mode 100644
index 0000000..7f37e49
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/Makefile.svn-base
@@ -0,0 +1,36 @@
+CURR_DIR :=$(shell pwd)
+
+export CURR_DIR
+
+.PHONY: get_version
+
+all: clean get_version get_options 
+
+get_version:
+	@if [ ! -d $(KERNEL_SOURCE)/ ]; then \
+		echo "";\
+		echo "$(KERNEL_SOURCE) directory does not exist. Please edit the file 'config'";\
+		echo "in this directory and set KERNEL_SOURCE to the correct location of your ";\
+		echo "kernel source.";\
+		echo "";\
+		echo "You are currently running kernel version `uname -r`, the source code should";\
+		echo "be for this version.";\
+		echo "";\
+		exit 1;\
+	fi
+	@if [ ! -f $(KERNEL_SOURCE)/include/linux/version.h ]; then \
+		echo "$(KERNEL_SOURCE)/include/linux/version.h is missing. Please run make config";\
+		echo "in your kernel source tree";\
+		exit 1;\
+	fi
+
+	$(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version
+
+get_options:
+	$(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target
+
+clean:
+	$(RM) get_version make.opts 
+
+distclean: clean
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base
new file mode 100644
index 0000000..cde9707
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/get_version.c.svn-base
@@ -0,0 +1,11 @@
+#include <linux/version.h>
+
+#ifndef UTS_RELEASE
+#include <linux/utsrelease.h>
+#endif
+
+#include <stdio.h>
+main()
+{
+	printf("%s", UTS_RELEASE);
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base
new file mode 100644
index 0000000..4d2464f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/.svn/text-base/pda.pl.svn-base
@@ -0,0 +1,167 @@
+#!/usr/bin/perl
+
+use Getopt::Long;
+GetOptions(qw(pda! diff! repl! xdiff=s));
+
+sub usage {
+  print(q{
+Usage:
+pda.pl pdafile 
+or
+pda.pl --pda --diff --xdiff=0x0104,0x0007 pda1 pda2 > diff-pda1-pda2.pda
+
+--diff     takes 2 filenams and prints a diff (2nd file will override the first on
+           records that are present in both
+--pda      saves output suitable for loading via prism2dl (mainly for --diff)
+--repl     generates merged PDA, that could be used as a replacement (prism2dl -p)
+--xdiff    exclude given PDR's from beeing overridden by dst PDA => those will be
+           generated from src pdafile (comma separated hexlist)
+});
+  exit(0);
+} 
+
+$pdr_codes = {
+	0x0001 => 'PCB_PARTNUM', 0x0002 => 'PCB_TRACENUM', 0x0003 => 'NIC_SERIAL',
+	0x0004 => 'MKK_MEASUREMENTS', 0x0005 => 'NIC_RAMSIZE', 0x0006 => 'MFISUPRANGE',
+	0x0007 => 'CFISUPRANGE', 0x0008 => 'NICID', 0x0010 => 'REFDAC_MEASUREMENTS',
+	0x0020 => 'VGDAC_MEASUREMENTS', 0x0030 => 'LEVEL_COMP_MEASUREMENTS',
+	0x0040 => 'MODEM_TRIMDAC_MEASUREMENTS', 0x0101 => 'MAC_ADDRESS', 0x0102 => 'MKK_CALLNAME',
+	0x0103 => 'REGDOMAIN', 0x0104 => 'ALLOWED_CHANNEL', 0x0105 => 'DEFAULT_CHANNEL',
+	0x0106 => 'PRIVACY_OPTION', 0x0107 => 'TEMPTYPE', 0x0110 => 'REFDAC_SETUP',
+	0x0120 => 'VGDAC_SETUP', 0x0130 => 'LEVEL_COMP_SETUP', 0x0140 => 'TRIMDAC_SETUP',
+	0x0200 => 'IFR_SETTING', 0x0201 => 'RFR_SETTING', 0x0202 => 'HFA3861_BASELINE',
+	0x0203 => 'HFA3861_SHADOW', 0x0204 => 'HFA3861_IFRF', 0x0300 => 'HFA3861_CHCALSP',
+	0x0301 => 'HFA3861_CHCALI', 0x0900 => 'HFA3861_MANF_TESTSP', 0x0901 => 'HFA3861_MANF_TESTI',
+	0x0000 => 'END_OF_PDA',
+};
+
+$pdr_fmt = {
+   0x0001 => \&x2ascii_list, 0x0002 => \&x2ascii_list, 0x0003 => \&x2ascii_list,
+   0x0101 => \&x2hex_list,   0x0103 => \&x2dec_list,   0x0104 => \&x2bit_list,
+   0x0001 => \&x2ascii_list,
+};
+
+$srcfile=$ARGV[0];
+$dstfile=$ARGV[1];
+
+if (defined $opt_xdiff) {
+  @xdiff = map {hex} split /\s*,\s*/, $opt_xdiff;
+  print "@@ xdiff: $opt_xdiff\n";
+}
+
+if (!defined $srcfile) {
+  usage();
+}
+$src=read_pda($srcfile);
+
+if ($opt_diff) {
+  if (!defined $dstfile) {
+    usage();
+  }
+  $dst=read_pda($dstfile);
+
+  map { $join{$_->{code}} = 1; $src{$_->{code}} = $_; } @$src;
+  map { $join{$_->{code}} = 1; $dst{$_->{code}} = $_; } @$dst;
+
+  for $code (sort {($a || $a+0x1000) <=> ($b || $b+0x1000)} keys %join) {
+    if (!defined $dst{$code}) {
+       push @{$diff{src}}, $src{$code};
+    } elsif (!defined $src{$code}) {
+       push @{$diff{dst}}, $dst{$code};
+    } elsif ($src{$code}{data} ne $dst{$code}{data}) {
+       push @{$diff{diff}}, [$src{$code}, $dst{$code}];
+    } else {
+       push @{$diff{same}}, [$src{$code}, $dst{$code}];
+    }
+  }
+  print "@@ Only in $srcfile:\n";
+  for my $pdr (@{$diff{src}}) {
+    print_pdr($pdr, {prefix=>$opt_pda && !$opt_repl ? "#- " : ""});
+  }
+  print "@@ Only in $dstfile:\n";
+  for my $pdr (@{$diff{dst}}) {
+    print_pdr($pdr);
+  }
+  print "@@ Different:\n";
+  for my $pdr (@{$diff{diff}}) {
+    if (grep {$_ == $pdr->[0]{code}} @xdiff) {
+      print_pdr($pdr->[0]);
+    } else {
+      if ($opt_pda && !$opt_repl && $pdr->[0]{len} != $pdr->[1]{len}) {
+	  printf "0x%04x, 0x%04x,\n", 1, $pdr->[0]{code};
+      }
+      print_pdr($pdr->[0], {prefix=>($opt_pda ? "#" : "").'- '});
+      print_pdr($pdr->[1], {prefix=>($opt_pda ? "" : "+ ")});
+    }
+  }
+  print "@@ Same:\n";
+  for my $pdr (@{$diff{same}}) {
+    print_pdr($pdr->[0], {header=>!$opt_pda});
+  }
+} else {
+  for $pdr (sort {($a->{code} || $a->{code}+0x1000) <=> ($b->{code} || $b->{code}+0x1000)} @$src) {
+    print_pdr($pdr);
+  }
+}
+sub x2ascii_list {
+  my ($pdr) = @_;
+  my ($data) =  $pdr->{data};
+  $data =~ s/[\x0-\x1f\x80-\x9f]/sprintf "\\x%02x", $&/eg;
+  return $data;
+}
+
+sub x2hex_list {
+  my ($pdr) = @_;
+
+  return join(':', map { sprintf "%02x", ord($_) } split //, $pdr->{data});
+}
+sub x2dec_list {
+  my ($pdr) = @_;
+
+  return join(',', unpack('C*', $pdr->{data}));
+}
+sub x2bit_list {
+  my ($pdr) = @_;
+  my ($start) = 1;
+
+  return join(',', map { $_ ? $start++ : scalar($start++, undef) } 
+                       split //, unpack("b*", $pdr->{data}));
+}
+
+sub print_pdr {
+  my ($pdr, $opts) = @_;
+  my $data;
+
+  if (exists($pdr_fmt->{$pdr->{code}})) {
+     $data = &{$pdr_fmt->{$pdr->{code}}}($pdr);
+  }
+  printf "%s# %s (0x%04x/0x%04x) %s\n", $opts->{prefix},
+	 $pdr_codes->{$pdr->{code}}, $pdr->{code}, $pdr->{len}, $data && "= $data"; 
+  print $opts->{prefix}.join('', map {sprintf "0x%04x, ", $_} $pdr->{len}, $pdr->{code}, @{$pdr->{nums}})."\n"
+    unless $opts->{header};
+}
+
+sub read_pda {
+  my ($file) = @_;
+  my (@pda, $pdrs);
+
+  open PDA, "$file" or die "$file: $!\n";
+  while (<PDA>) {
+    s/[^\s\da-fx,].*//;
+    push @pda, grep { /^0x[\da-z]+$/i } split /[^x\da-z]+/i;
+  }
+  close PDA;
+
+  my ($len, $op, @data);
+
+  for (my $i=0; $i < @pda; $i+=$len+1) {
+    $len   = hex($pda[$i]);
+    $code  = hex($pda[$i+1]);
+    next unless $code;
+    $nums  = [ map { hex } @pda[$i+2 .. $i+$len] ];
+    $data  = pack("v*", @$nums);
+
+    push @$pdrs, {len=>$len, code=>$code, data=>$data, nums=>$nums};
+  }
+  return $pdrs;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile
new file mode 100644
index 0000000..7f37e49
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile
@@ -0,0 +1,36 @@
+CURR_DIR :=$(shell pwd)
+
+export CURR_DIR
+
+.PHONY: get_version
+
+all: clean get_version get_options 
+
+get_version:
+	@if [ ! -d $(KERNEL_SOURCE)/ ]; then \
+		echo "";\
+		echo "$(KERNEL_SOURCE) directory does not exist. Please edit the file 'config'";\
+		echo "in this directory and set KERNEL_SOURCE to the correct location of your ";\
+		echo "kernel source.";\
+		echo "";\
+		echo "You are currently running kernel version `uname -r`, the source code should";\
+		echo "be for this version.";\
+		echo "";\
+		exit 1;\
+	fi
+	@if [ ! -f $(KERNEL_SOURCE)/include/linux/version.h ]; then \
+		echo "$(KERNEL_SOURCE)/include/linux/version.h is missing. Please run make config";\
+		echo "in your kernel source tree";\
+		exit 1;\
+	fi
+
+	$(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version
+
+get_options:
+	$(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target
+
+clean:
+	$(RM) get_version make.opts 
+
+distclean: clean
+
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options
new file mode 100644
index 0000000..d8a1524
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/Makefile.get_options
@@ -0,0 +1,10 @@
+KERNEL_VERSION := $(shell $(CURR_DIR)/get_version)
+KERNEL_RELEASE := $(shell echo $(KERNEL_VERSION) | cut -d\" -f2| cut -c-5)
+
+include Makefile
+
+get_version_target:
+	echo "KERNEL_RELEASE=$(KERNEL_VERSION)" >> $(CURR_DIR)/make.opts
+	echo "CROSS_COMPILE='$(CROSS_COMPILE)'" >> $(CURR_DIR)/make.opts
+	echo "HOST_CC='$(HOSTCC)'" >> $(CURR_DIR)/make.opts
+	echo "HOST_CFLAGS='$(HOSTCFLAGS)'" >> $(CURR_DIR)/make.opts
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c
new file mode 100644
index 0000000..cde9707
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/get_version.c
@@ -0,0 +1,11 @@
+#include <linux/version.h>
+
+#ifndef UTS_RELEASE
+#include <linux/utsrelease.h>
+#endif
+
+#include <stdio.h>
+main()
+{
+	printf("%s", UTS_RELEASE);
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl
new file mode 100755
index 0000000..4d2464f
--- /dev/null
+++ b/abs/core-testing/wlan-ng26-utils/tmp/trunk/scripts/pda.pl
@@ -0,0 +1,167 @@
+#!/usr/bin/perl
+
+use Getopt::Long;
+GetOptions(qw(pda! diff! repl! xdiff=s));
+
+sub usage {
+  print(q{
+Usage:
+pda.pl pdafile 
+or
+pda.pl --pda --diff --xdiff=0x0104,0x0007 pda1 pda2 > diff-pda1-pda2.pda
+
+--diff     takes 2 filenams and prints a diff (2nd file will override the first on
+           records that are present in both
+--pda      saves output suitable for loading via prism2dl (mainly for --diff)
+--repl     generates merged PDA, that could be used as a replacement (prism2dl -p)
+--xdiff    exclude given PDR's from beeing overridden by dst PDA => those will be
+           generated from src pdafile (comma separated hexlist)
+});
+  exit(0);
+} 
+
+$pdr_codes = {
+	0x0001 => 'PCB_PARTNUM', 0x0002 => 'PCB_TRACENUM', 0x0003 => 'NIC_SERIAL',
+	0x0004 => 'MKK_MEASUREMENTS', 0x0005 => 'NIC_RAMSIZE', 0x0006 => 'MFISUPRANGE',
+	0x0007 => 'CFISUPRANGE', 0x0008 => 'NICID', 0x0010 => 'REFDAC_MEASUREMENTS',
+	0x0020 => 'VGDAC_MEASUREMENTS', 0x0030 => 'LEVEL_COMP_MEASUREMENTS',
+	0x0040 => 'MODEM_TRIMDAC_MEASUREMENTS', 0x0101 => 'MAC_ADDRESS', 0x0102 => 'MKK_CALLNAME',
+	0x0103 => 'REGDOMAIN', 0x0104 => 'ALLOWED_CHANNEL', 0x0105 => 'DEFAULT_CHANNEL',
+	0x0106 => 'PRIVACY_OPTION', 0x0107 => 'TEMPTYPE', 0x0110 => 'REFDAC_SETUP',
+	0x0120 => 'VGDAC_SETUP', 0x0130 => 'LEVEL_COMP_SETUP', 0x0140 => 'TRIMDAC_SETUP',
+	0x0200 => 'IFR_SETTING', 0x0201 => 'RFR_SETTING', 0x0202 => 'HFA3861_BASELINE',
+	0x0203 => 'HFA3861_SHADOW', 0x0204 => 'HFA3861_IFRF', 0x0300 => 'HFA3861_CHCALSP',
+	0x0301 => 'HFA3861_CHCALI', 0x0900 => 'HFA3861_MANF_TESTSP', 0x0901 => 'HFA3861_MANF_TESTI',
+	0x0000 => 'END_OF_PDA',
+};
+
+$pdr_fmt = {
+   0x0001 => \&x2ascii_list, 0x0002 => \&x2ascii_list, 0x0003 => \&x2ascii_list,
+   0x0101 => \&x2hex_list,   0x0103 => \&x2dec_list,   0x0104 => \&x2bit_list,
+   0x0001 => \&x2ascii_list,
+};
+
+$srcfile=$ARGV[0];
+$dstfile=$ARGV[1];
+
+if (defined $opt_xdiff) {
+  @xdiff = map {hex} split /\s*,\s*/, $opt_xdiff;
+  print "@@ xdiff: $opt_xdiff\n";
+}
+
+if (!defined $srcfile) {
+  usage();
+}
+$src=read_pda($srcfile);
+
+if ($opt_diff) {
+  if (!defined $dstfile) {
+    usage();
+  }
+  $dst=read_pda($dstfile);
+
+  map { $join{$_->{code}} = 1; $src{$_->{code}} = $_; } @$src;
+  map { $join{$_->{code}} = 1; $dst{$_->{code}} = $_; } @$dst;
+
+  for $code (sort {($a || $a+0x1000) <=> ($b || $b+0x1000)} keys %join) {
+    if (!defined $dst{$code}) {
+       push @{$diff{src}}, $src{$code};
+    } elsif (!defined $src{$code}) {
+       push @{$diff{dst}}, $dst{$code};
+    } elsif ($src{$code}{data} ne $dst{$code}{data}) {
+       push @{$diff{diff}}, [$src{$code}, $dst{$code}];
+    } else {
+       push @{$diff{same}}, [$src{$code}, $dst{$code}];
+    }
+  }
+  print "@@ Only in $srcfile:\n";
+  for my $pdr (@{$diff{src}}) {
+    print_pdr($pdr, {prefix=>$opt_pda && !$opt_repl ? "#- " : ""});
+  }
+  print "@@ Only in $dstfile:\n";
+  for my $pdr (@{$diff{dst}}) {
+    print_pdr($pdr);
+  }
+  print "@@ Different:\n";
+  for my $pdr (@{$diff{diff}}) {
+    if (grep {$_ == $pdr->[0]{code}} @xdiff) {
+      print_pdr($pdr->[0]);
+    } else {
+      if ($opt_pda && !$opt_repl && $pdr->[0]{len} != $pdr->[1]{len}) {
+	  printf "0x%04x, 0x%04x,\n", 1, $pdr->[0]{code};
+      }
+      print_pdr($pdr->[0], {prefix=>($opt_pda ? "#" : "").'- '});
+      print_pdr($pdr->[1], {prefix=>($opt_pda ? "" : "+ ")});
+    }
+  }
+  print "@@ Same:\n";
+  for my $pdr (@{$diff{same}}) {
+    print_pdr($pdr->[0], {header=>!$opt_pda});
+  }
+} else {
+  for $pdr (sort {($a->{code} || $a->{code}+0x1000) <=> ($b->{code} || $b->{code}+0x1000)} @$src) {
+    print_pdr($pdr);
+  }
+}
+sub x2ascii_list {
+  my ($pdr) = @_;
+  my ($data) =  $pdr->{data};
+  $data =~ s/[\x0-\x1f\x80-\x9f]/sprintf "\\x%02x", $&/eg;
+  return $data;
+}
+
+sub x2hex_list {
+  my ($pdr) = @_;
+
+  return join(':', map { sprintf "%02x", ord($_) } split //, $pdr->{data});
+}
+sub x2dec_list {
+  my ($pdr) = @_;
+
+  return join(',', unpack('C*', $pdr->{data}));
+}
+sub x2bit_list {
+  my ($pdr) = @_;
+  my ($start) = 1;
+
+  return join(',', map { $_ ? $start++ : scalar($start++, undef) } 
+                       split //, unpack("b*", $pdr->{data}));
+}
+
+sub print_pdr {
+  my ($pdr, $opts) = @_;
+  my $data;
+
+  if (exists($pdr_fmt->{$pdr->{code}})) {
+     $data = &{$pdr_fmt->{$pdr->{code}}}($pdr);
+  }
+  printf "%s# %s (0x%04x/0x%04x) %s\n", $opts->{prefix},
+	 $pdr_codes->{$pdr->{code}}, $pdr->{code}, $pdr->{len}, $data && "= $data"; 
+  print $opts->{prefix}.join('', map {sprintf "0x%04x, ", $_} $pdr->{len}, $pdr->{code}, @{$pdr->{nums}})."\n"
+    unless $opts->{header};
+}
+
+sub read_pda {
+  my ($file) = @_;
+  my (@pda, $pdrs);
+
+  open PDA, "$file" or die "$file: $!\n";
+  while (<PDA>) {
+    s/[^\s\da-fx,].*//;
+    push @pda, grep { /^0x[\da-z]+$/i } split /[^x\da-z]+/i;
+  }
+  close PDA;
+
+  my ($len, $op, @data);
+
+  for (my $i=0; $i < @pda; $i+=$len+1) {
+    $len   = hex($pda[$i]);
+    $code  = hex($pda[$i+1]);
+    next unless $code;
+    $nums  = [ map { hex } @pda[$i+2 .. $i+$len] ];
+    $data  = pack("v*", @$nums);
+
+    push @$pdrs, {len=>$len, code=>$code, data=>$data, nums=>$nums};
+  }
+  return $pdrs;
+}
diff --git a/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2 b/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2
new file mode 100644
index 0000000..93db584
Binary files /dev/null and b/abs/core-testing/wlan-ng26-utils/tmp/wlan-ng26-svn-r1870.tar.bz2 differ
diff --git a/abs/core-testing/wlan-ng26/PKGBUILD b/abs/core-testing/wlan-ng26/PKGBUILD
index c592386..7d4ff75 100644
--- a/abs/core-testing/wlan-ng26/PKGBUILD
+++ b/abs/core-testing/wlan-ng26/PKGBUILD
@@ -1,35 +1,38 @@
-# $Id: PKGBUILD 7952 2008-08-05 10:33:48Z tpowa $
+# $Id: PKGBUILD 14957 2008-10-11 20:14:56Z tpowa $
 # Maintainer: Tom Killian <tom@archlinux.org>
 
-pkgname=wlan-ng26
-pkgver=0.2.9
+pkgname=wlan-ng26-svn
+pkgver=r1870
 pkgrel=1
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 pkgdesc="Wireless Lan usb modules. For kernel26."
 arch=(i686 x86_64)
 license=('MPL')
-depends=('kernel26>=2.6.26-1' 'kernel26<2.6.27' 'wlan-ng26-utils')
-source=(ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-$pkgver.tar.bz2
-	kernel-2.6.26.patch)
+depends=('kernel26>=2.6.27-1' 'kernel26<2.6.28' 'wlan-ng26-utils')
+source=(ftp://ftp.knoppmyth.net/R6/sources/wlan-ng26-svn-$pkgver.tar.bz2
+	kernel-2.6.26.patch
+	kernel-2.6.27.patch)
 url="ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/"
 install=wlan-ng26.install
 options=(!makeflags)
+md5sums=('86af583059976c2f340e27911af49059'
+         '7023c8c1f048659f95c2a41e5f1ae772'
+         '9261df23043b181fd86c5e4100a84883')
 
 build() {
-   cd $startdir/src/linux-wlan-ng-$pkgver
-   patch -Np0 -i ../kernel-2.6.26.patch || return 1
+#   cd $srcdir/linux-wlan-ng-$pkgver
+   cd $srcdir/trunk
+#   patch -Np0 -i ../kernel-2.6.26.patch || return 1
+#   patch -Np0 -i ../kernel-2.6.27.patch || return 1
   # only built usb modules the rest is covered by hostap and orinoco driver, according to gentoo changelog 
   sed -i "s#PRISM2_PCMCIA=y#PRISM2_PCMCIA=n#;s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#;s#PRISM2_USB=n#PRISM2_USB=y#;s%#LINUX_SRC=/usr/src/linux%LINUX_SRC=/lib/modules/${_kernver}/build%" config.in
    make auto_config
    make all || return 1
    make install
    sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/wlan-ng26.install
-   rm -r $startdir/pkg/{etc,sbin,usr,init.d}
+   rm -r $pkgdir/{etc,sbin,usr,init.d}
    # fix module path
-   mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless
-   mv $startdir/pkg/lib/modules/${_kernver}/linux-wlan-ng \
-      $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless
+   mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless
+   mv $pkgdir/lib/modules/${_kernver}/linux-wlan-ng \
+      $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless
 }
-
-md5sums=('96130b36f9674521b08fb3e2a6ac0382'
-         '6ed5a5fefc2c149e0e0a98de211ba147')
diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch
index ec306f0..28b61a0 100644
--- a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch
+++ b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch
@@ -11,4 +11,5 @@ Index: src/p80211/p80211netdev.c
 +		dev_net_set(dev, &init_net);
 +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) )
  		dev->nd_net = &init_net;
- #endif
\ No newline at end of file
+ #endif
+
diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.27.patch b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch
new file mode 100644
index 0000000..7a17f17
--- /dev/null
+++ b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch
@@ -0,0 +1,179 @@
+--- src/p80211/p80211wext.c	(revision 1865)
++++ src/p80211/p80211wext.c	(working copy)
+@@ -81,6 +81,12 @@
+ /* compatibility to wireless extensions */
+ #ifdef WIRELESS_EXT
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && \
++    !defined(IW_REQUEST_FLAG_COMPAT)
++#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e)
++#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e)
++#endif
++
+ static UINT8 p80211_mhz_to_channel(UINT16 mhz)
+ {
+ 	if (mhz >= 5000) {
+@@ -1520,7 +1526,8 @@
+  * airo driver code.
+  */
+ static char *
+-wext_translate_bss(char *current_ev, char *end_buf, p80211msg_dot11req_scan_results_t *bss)
++wext_translate_bss(struct iw_request_info *info, char *current_ev,
++		   char *end_buf, p80211msg_dot11req_scan_results_t *bss)
+ {
+ 	struct iw_event iwe;	/* Temporary buffer */
+ 
+@@ -1528,7 +1535,8 @@
+ 	memcpy(iwe.u.ap_addr.sa_data, bss->bssid.data.data, WLAN_BSSID_LEN);
+ 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ 	iwe.cmd = SIOCGIWAP;
+-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_ADDR_LEN);
++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,
++					  IW_EV_ADDR_LEN);
+ 
+ 	/* The following entries will be displayed in the same order we give them */
+ 
+@@ -1544,7 +1552,8 @@
+ 		iwe.u.data.length = size;
+ 		iwe.u.data.flags = 1;
+ 		iwe.cmd = SIOCGIWESSID;
+-		current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, &essid[0]);
++		current_ev = iwe_stream_add_point(info, current_ev, end_buf,
++						  &iwe, &essid[0]);
+ 		WLAN_LOG_DEBUG(1, " essid size OK.\n");
+ 	}
+ 
+@@ -1563,7 +1572,8 @@
+ 	}
+ 	iwe.cmd = SIOCGIWMODE;
+ 	if (iwe.u.mode)
+-		current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_UINT_LEN);
++		current_ev = iwe_stream_add_event(info, current_ev, end_buf,
++						  &iwe, IW_EV_UINT_LEN);
+ 
+ 	/* Encryption capability */
+ 	if (bss->privacy.data == P80211ENUM_truth_true)
+@@ -1572,13 +1582,15 @@
+ 		iwe.u.data.flags = IW_ENCODE_DISABLED;
+ 	iwe.u.data.length = 0;
+ 	iwe.cmd = SIOCGIWENCODE;
+-	current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, NULL);
++	current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe,
++					  NULL);
+ 
+ 	/* Add frequency. (short) bss->channel is the frequency in MHz */
+ 	iwe.u.freq.m = bss->dschannel.data;
+ 	iwe.u.freq.e = 0;
+ 	iwe.cmd = SIOCGIWFREQ;
+-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_FREQ_LEN);
++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,
++					  IW_EV_FREQ_LEN);
+ 
+ 	/* Add quality statistics */
+ 	iwe.u.qual.level = bss->signal.data;
+@@ -1586,7 +1598,8 @@
+ 	/* do a simple SNR for quality */
+ 	iwe.u.qual.qual = qual_as_percent(bss->signal.data - bss->noise.data);
+ 	iwe.cmd = IWEVQUAL;
+-	current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
++	current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe,
++					  IW_EV_QUAL_LEN);
+ 
+ 	return current_ev;
+ }
+@@ -1627,7 +1640,8 @@
+ 			break;
+ 		}
+ 		  
+-		current_ev = wext_translate_bss(current_ev, extra + IW_SCAN_MAX_DATA, &msg);
++		current_ev = wext_translate_bss(info, current_ev,
++						extra + IW_SCAN_MAX_DATA, &msg);
+ 		scan_good = 1;
+ 		i++;
+ 	} while (i < IW_MAX_AP);
+--- src/p80211/p80211netdev.c
++++ src/p80211/p80211netdev.c
+@@ -869,6 +869,30 @@ static int wlan_change_mtu(netdevice_t *dev, int new_mtu)
+         return 0;
+ }
+ 
++/*---------------------------------------------------------
++ * wlan_alloc_netdev
++ *
++ * create a netdev properly over different kernel versions
++ * this should work with kernels earlier than 2.6.26, and if
++ * anyone cares they can change it
++----------------------------------------------------------*/   
++
++static inline netdevice_t * wlan_alloc_netdev() {
++	netdevice_t *dev;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) )
++	dev = alloc_netdev(0,"wlan%d",ether_setup);
++#else
++	dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC);
++	if ( dev ) {
++		memset( dev, 0, sizeof(netdevice_t));
++		ether_setup(dev);
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) )
++		dev->nd_net = &init_net;
++#endif
++	}
++#endif
++	return dev;
++}
+ 
+ 
+ /*----------------------------------------------------------------
+@@ -911,14 +935,12 @@ int wlan_setup(wlandevice_t *wlandev)
+ 		     p80211netdev_rx_bh, 
+ 		     (unsigned long)wlandev);
+ 
+-	/* Allocate and initialize the struct device */
+-	dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC);
++	/* Allocate and initialize the struct net device */
++	dev = wlan_alloc_netdev();
+ 	if ( dev == NULL ) {
+ 		WLAN_LOG_ERROR("Failed to alloc netdev.\n");
+ 		result = 1;
+ 	} else {
+-		memset( dev, 0, sizeof(netdevice_t));
+-		ether_setup(dev);
+ 		wlandev->netdev = dev;
+ 		dev->priv = wlandev;
+ 		dev->hard_start_xmit =	p80211knetdev_hard_start_xmit;
+@@ -946,10 +968,8 @@ int wlan_setup(wlandevice_t *wlandev)
+ 		dev->wireless_handlers = &p80211wext_handler_def;
+ #endif
+ #endif
+-	
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) )
+-		dev_net_set(dev, &init_net);
+-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) )
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26))
+ 		dev->nd_net = &init_net;
+ #endif
+ 		
+@@ -1044,7 +1064,12 @@ int register_wlandev(wlandevice_t *wlandev)
+ 	netdevice_t	*dev = wlandev->netdev;
+ 
+ 	DBFENTER;
+-
++/* alloc_netdev already sets up the name */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) )
++	i = register_netdev(dev);
++	if (i) 
++		return i;
++#else
+ 	i = dev_alloc_name(wlandev->netdev, "wlan%d");
+ 	if (i >= 0) {
+ 		i = register_netdev(wlandev->netdev);
+@@ -1058,6 +1083,8 @@ int register_wlandev(wlandevice_t *wlandev)
+ #else
+ 	strcpy(wlandev->name, dev->name);
+ #endif
++#endif
++
+ 
+ #ifdef CONFIG_PROC_FS
+ 	if (proc_p80211) {
diff --git a/abs/core-testing/wlan-ng26/wlan-ng26.install b/abs/core-testing/wlan-ng26/wlan-ng26.install
index fe7abaa..ff39264 100644
--- a/abs/core-testing/wlan-ng26/wlan-ng26.install
+++ b/abs/core-testing/wlan-ng26/wlan-ng26.install
@@ -8,7 +8,7 @@ post_install() {
 post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.26-ARCH
+  KERNEL_VERSION=2.6.27-ARCH
   depmod -v $KERNEL_VERSION  > /dev/null 2>&1
 }
 
@@ -21,7 +21,7 @@ pre_remove() {
 post_remove() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
-  KERNEL_VERSION=2.6.26-ARCH
+  KERNEL_VERSION=2.6.27-ARCH
   depmod -v $KERNEL_VERSION  > /dev/null 2>&1
 }
 
diff --git a/abs/extra-testing/sharutils/PKGBUILD b/abs/extra-testing/sharutils/PKGBUILD
new file mode 100644
index 0000000..6971668
--- /dev/null
+++ b/abs/extra-testing/sharutils/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sharutils
+pkgver=4.6.3
+pkgrel=1
+pkgdesc="GNU shar makes so-called shell archives out of many files"
+arch=(i686 x86_64)
+depends=('gettext')
+source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/REL-$pkgver/$pkgname-$pkgver.tar.gz)
+url="http://www.gnu.org/software/sharutils/"
+md5sums=('74127a560e59be6dfa8b59993eb0ca91')
+
+build() {
+  cd $startdir/src/$pkgname-$pkgver
+  ./configure --prefix=/usr --disable-nls
+  make || return 1
+  make prefix=$startdir/pkg/usr install
+}
-- 
cgit v0.12


From eb00fec42b6ccd143a145c89fff284969aa738be Mon Sep 17 00:00:00 2001
From: Tom Culliton <culliton@x2.(none)>
Date: Sat, 10 Jan 2009 20:55:28 -0500
Subject: Updates to make the backup and restore scripts work for Arch Linux
 and be more portable in general. Also use the library facilities for checking
 on the existence of prerequisites.

---
 abs/core-testing/LinHES-system/bin/backupcommon | 143 ++++++++++++++-------
 abs/core-testing/LinHES-system/bin/checkbackup  |   2 +-
 abs/core-testing/LinHES-system/bin/checkrestore |   2 +-
 abs/core-testing/LinHES-system/bin/library.sh   | 164 ++++++++++++++++++++++++
 abs/core-testing/LinHES-system/bin/mythbackup   |  30 ++---
 abs/core-testing/LinHES-system/bin/mythrestore  |  22 ++--
 abs/core-testing/LinHES-system/bin/rollback.sh  |  20 +++
 7 files changed, 310 insertions(+), 73 deletions(-)
 mode change 100755 => 100644 abs/core-testing/LinHES-system/bin/backupcommon
 create mode 100755 abs/core-testing/LinHES-system/bin/library.sh
 create mode 100755 abs/core-testing/LinHES-system/bin/rollback.sh

diff --git a/abs/core-testing/LinHES-system/bin/backupcommon b/abs/core-testing/LinHES-system/bin/backupcommon
old mode 100755
new mode 100644
index a5ed7c0..9b75db3
--- a/abs/core-testing/LinHES-system/bin/backupcommon
+++ b/abs/core-testing/LinHES-system/bin/backupcommon
@@ -1,12 +1,16 @@
 #!/bin/bash
 
+. /usr/LH/bin/library.sh || {
+    echo 1>&2 "Can not load common library!"
+    exit 1
+}
+
 #----------------------------------------------------------------------------
 DATABASE="mythconverg"
-DATABASE_DIR="/var/lib/mysql/$DATABASE"
+DATABASE_DIR="/data/srv/mysql/$DATABASE"
 BACKUP_LIST="./root ./home ./etc
-             ./var/www/mythweb/.htaccess ./var/lib/alsa/asound.state"
-RESTORE_LIST="./root ./home ./etc/mythtv/modules ./etc/lirc ./etc/htdigest
-              ./etc/apache2/apache2.conf ./var/www/mythweb/.htaccess
+             ./var/lib/alsa/asound.state"
+RESTORE_LIST="./root ./home ./etc/mythtv/modules ./etc/lirc
               ./etc/X11/xorg.conf ./etc/asound.conf ./etc/default/aumix
               ./var/lib/alsa/asound.state ./etc/mplayer/mplayer.conf
               ./etc/localtime ./etc/timezone"
@@ -41,14 +45,54 @@ BACKUP_EXTRAS="$BACKUP_DIR/backup.list"
 RESTORE_EXTRAS="$BACKUP_DIR/restore.list"
 BACKUP_TAR="$BACKUP_DIR/savedfiles.tar"
 BACKUP_SQL="$BACKUP_DIR/$DATABASE.sql"
-DROP_SQL="/usr/local/share/knoppmyth/drop.sql"
+#DROP_SQL="/usr/local/share/knoppmyth/drop.sql"
+UTIL_DIR="/usr/LH/bin"
 # Do we really still need to update from myth-0.11 to myth-0.12 ?
 UPDATE_SQL="/usr/share/mythtv/sql/0.11-to-0.12.sql"
-UPDATE_FILES="/usr/local/bin/restore_fixups.sh"
+UPDATE_FILES="$UTIL_DIR/restore_fixups.sh"
 COMPRESSION=".gz"
 SOUNDS="/usr/share/sounds"
 PLAYER="/usr/bin/aplay"
 #----------------------------------------------------------------------------
+AWK=/bin/awk
+BASH=/bin/bash
+BUNZIP2=/bin/bunzip2
+BZIP2=/bin/bzip2
+CAT=/bin/cat
+CHMOD=/bin/chmod
+CHOWN=/bin/chown
+EGREP=/bin/egrep
+GREP=/bin/grep
+GUNZIP=/bin/gunzip
+GZIP=/bin/gzip
+LS=/bin/ls
+MV=/bin/mv
+RM=/bin/rm
+SED=/bin/sed
+TAR=/bin/tar
+TR=/bin/tr
+DIFF=/usr/bin/diff
+FIND=/usr/bin/find
+MD5SUM=/usr/bin/md5sum
+MYISAMCHK=/usr/bin/myisamchk
+MYSQL=/usr/bin/mysql
+MYSQLADMIN=/usr/bin/mysqladmin
+MYSQLDUMP=/usr/bin/mysqldump
+MYTHSHUTDOWN=/usr/bin/mythshutdown
+SORT=/usr/bin/sort
+WC=/usr/bin/wc
+SV=/sbin/sv
+
+#----------------------------------------------------------------------------
+
+require file+r+x $AWK $BASH $BUNZIP2 $BZIP2 $CAT $CHMOD $CHOWN $EGREP $GREP \
+                 $GUNZIP $GZIP $LS $MV $RM $SED $TAR $TR $DIFF $FIND $MD5SUM \
+                 $MYISAMCHK $MYSQL $MYSQLADMIN $MYSQLDUMP $MYTHSHUTDOWN \
+                 $SORT $WC $SV
+
+#require file+r "$DROP_SQL"
+
+require dir+r+w+x /tmp "$BACKUP_DIR" "$DATABASE_DIR"
 
 play_sound () {
     ($PLAYER $SOUNDS/$1 >& /dev/null)&
@@ -56,26 +100,26 @@ play_sound () {
 
 # Filter against an exclude list like the black list or the ignore list above
 filter_list () {
-    /bin/grep -vxF "$*" |
-    /usr/bin/sort -u
+    $GREP -vxF "$*" |
+    $SORT -u
 }
 
 # Some people just can't read or follow directions... :-/
 # This should track the directory names in the default backup list above
 # We also use this to short circuit a certain incredibly dumb stunt
 filter_redundant () {
-    filter_list "$(echo $BACKUP_LIST ./myth | /usr/bin/tr -s ' ' '\n')" |
-    /bin/egrep -v '^\./(root|home|etc|myth)/' |
-    /usr/bin/sort -u
+    filter_list "$($TR -s ' ' '\n' <<<"$BACKUP_LIST ./myth")" |
+    $EGREP -v '^\./(root|home|etc|myth)/' |
+    $SORT -u
 }
 
 get_extras () {
     # One entry per line, and normalize the prefix
-    /usr/bin/tr ' ' '\n' <"$1" |
-    /usr/bin/awk '/^$/ {next}
-                  /^\.\// {print $0 ; next}
-                  /^\// {print "." $0 ; next}
-                  { print "./" $0}'
+    $TR ' ' '\n' <"$1" |
+    $AWK '/^$/ {next}
+          /^\.\// {print $0 ; next}
+          /^\// {print "." $0 ; next}
+          { print "./" $0}'
 }
 
 [ -f "$BACKUP_EXTRAS" ] &&
@@ -101,10 +145,10 @@ esac
 shrink () {
     case "$COMPRESSION" in
     .gz)
-        /bin/gzip -9 "$@"
+        $GZIP -9 "$@"
         ;;
     .bz2)
-        /bin/bzip2 -9 "$@"
+        $BZIP2 -9 "$@"
         ;;
     *)
         ;;
@@ -114,13 +158,13 @@ shrink () {
 expand () {
     case "$*" in
     *.gz)
-        /bin/gunzip "$@"
+        $GUNZIP "$@"
         ;;
     *.bz2)
-        /bin/bunzip2 "$@"
+        $BUNZIP2 "$@"
         ;;
     -c\ *)
-        /bin/cat $2 /dev/null
+        $CAT $2 /dev/null
         ;;
     -t\ *)
         return 0
@@ -133,8 +177,8 @@ expand () {
 }
 
 single_format () {
-    candidates=$(/bin/ls -1 "$1.gz" "$1.bz2" "$1" 2>/dev/null)
-    case $(echo "$candidates" | /usr/bin/wc -l) in
+    candidates=$($LS -1 "$1.gz" "$1.bz2" "$1" 2>/dev/null)
+    case $($WC -l <<<"$candidates") in
     1)  return 0  # One is good!
     	;;
     0)  echo "Error, no $1 found!"
@@ -161,10 +205,10 @@ backup_roller () { # Gets the rollover sequence to use.
     for i in "$@" ; do
         for c in .gz .bz2 "" ; do
             for f in $BACKUP_SQL $BACKUP_TAR ; do
-                /bin/rm -f $f$c$prev_i
+                $RM -f $f$c$prev_i
                 if [ -f "$f$c$i" ] ; then
                     echo "Moving $f$c$i to $f$c$prev_i"
-                    /bin/mv -f $f$c$i $f$c$prev_i
+                    $MV -f $f$c$i $f$c$prev_i
                 fi
             done
         done
@@ -174,17 +218,17 @@ backup_roller () { # Gets the rollover sequence to use.
 
 # Given "subset A B" return true if is A a subset of B
 subset () {
-    cnt=$(/usr/bin/diff $1 $2 | /bin/grep '^<' | /usr/bin/wc -l)
+    cnt=$($DIFF $1 $2 | $GREP '^<' | $WC -l)
     [ "$cnt" -eq 0 ] && return 0
-    /usr/bin/diff $1 $2
+    $DIFF $1 $2
 }
 
 mysql_cmd () {
-    /usr/bin/mysql -u root $DATABASE -sBe "$*"
+    $MYSQL -u root $DATABASE -sBe "$*"
 }
 
 mysql_stdin () {
-    /usr/bin/mysql -u root $DATABASE -sB
+    $MYSQL -u root $DATABASE -sB
 }
 
 check_files () {
@@ -205,14 +249,14 @@ check_files () {
     echo "Generating a list of the backup contents..."
     {
     expand -c $BACKUP_TAR$c |
-      /bin/tar tf - $OBJECT_LIST $EXCLUSION |
-      /bin/sed '/\/$/s///' |
+      $TAR tf - $OBJECT_LIST $EXCLUSION |
+      $SED '/\/$/s///' |
       filter_list "$IGNORE_LIST" >$SAVED_FILES
-    } 2>&1 | /bin/sed -e '/Error exit delayed from previous errors/d'
+    } 2>&1 | $SED -e '/Error exit delayed from previous errors/d'
 
     echo "Generating a list of the directory contents..."
     cd /
-    /usr/bin/find $OBJECT_LIST \( -type d -or -type f -or -type l \) -print |
+    $FIND $OBJECT_LIST \( -type d -or -type f -or -type l \) -print |
       filter_list "$IGNORE_LIST" >$LIVE_FILES
 
     echo "Comparing directory versus backup contents..."
@@ -224,11 +268,11 @@ check_files () {
         subset $SAVED_FILES $LIVE_FILES
         ;;
     *)
-        /usr/bin/diff $LIVE_FILES $SAVED_FILES
+        $DIFF $LIVE_FILES $SAVED_FILES
         ;;
     esac
     FILE_STATUS=$?
-    /bin/rm $LIVE_FILES $SAVED_FILES
+    $RM $LIVE_FILES $SAVED_FILES
     if [ $FILE_STATUS -eq 0 ] ; then
         echo "Live and saved file lists match."
     else
@@ -240,11 +284,11 @@ check_files () {
 has_records () {
     filename="$1"
     description="$2"
-    if [ $(/usr/bin/wc -l < "$filename") -eq 0 ] ; then
+    if [ $($WC -l < "$filename") -eq 0 ] ; then
         echo "Warning, could not get record counts from $description!"
         return 1
     fi
-    if [ $(/usr/bin/awk '{cnt+=$2} END {print cnt}' < "$filename") -eq 0 ] ; then
+    if [ $($AWK '{cnt+=$2} END {print cnt}' < "$filename") -eq 0 ] ; then
         echo "Warning, total record count from $description is zero!"
         return 1
     fi
@@ -267,22 +311,22 @@ check_tables () {
 
     echo "Generating a list of tables and record counts in the DB dump..."
     expand -c "$BACKUP_SQL$c" |
-      /usr/bin/awk '/CREATE TABLE/ { tbl = $3; gsub("`","",tbl); records[tbl] = 0; } \
+      $AWK '/CREATE TABLE/ { tbl = $3; gsub("`","",tbl); records[tbl] = 0; } \
         /INSERT INTO/  { tbl = $3; gsub("`","",tbl); \
                          n = split(substr($0,index($0,"VALUES (")+7),vals,"\\),\\("); \
                          records[tbl] += n; } \
         END { for (tbl in records) print tbl, records[tbl]; }' |
-      /bin/sed 's/mythlog [0-9]*/mythlog 0/' |
-      /usr/bin/sort >$SAVED_TABLES
+      $SED 's/mythlog [0-9]*/mythlog 0/' |
+      $SORT >$SAVED_TABLES
     has_records "$SAVED_TABLES" "DB dump" || return 1
 
     echo "Generating a list of tables and record counts in the live DB..."
     for tbl in $(mysql_cmd "show tables") ; do
         mysql_cmd "select '$tbl', count(*) from $tbl"
     done |
-      /usr/bin/tr -s '\t' ' ' |
-      /bin/sed 's/mythlog [0-9]*/mythlog 0/' |
-      /usr/bin/sort >$LIVE_TABLES
+      $TR -s '\t' ' ' |
+      $SED 's/mythlog [0-9]*/mythlog 0/' |
+      $SORT >$LIVE_TABLES
     has_records "$LIVE_TABLES" "live DB" || return 1
 
     echo "Comparing live versus saved tables..."
@@ -291,11 +335,11 @@ check_tables () {
         subset $SAVED_TABLES $LIVE_TABLES
         ;;
     *)        # backup must exactly match the database
-        /usr/bin/diff $LIVE_TABLES $SAVED_TABLES
+        $DIFF $LIVE_TABLES $SAVED_TABLES
         ;;
     esac
     TABLE_STATUS=$?
-    /bin/rm $LIVE_TABLES $SAVED_TABLES
+    $RM $LIVE_TABLES $SAVED_TABLES
     if [ $TABLE_STATUS -eq 0 ] ; then
         echo "Live and saved table lists match."
     else
@@ -314,4 +358,13 @@ check_files_and_tables () {
     return $STATUS
 }
 
+stop_mysqld () { $SV stop mysql ; }
+start_mysqld () { $SV start mysql ; }
+
+stop_mythbackend () { $SV stop mythbackend ; }
+start_mythbackend () { $SV start mythbackend ; }
+
+lock_myth () { $MYTHSHUTDOWN --lock ; }
+unlock_myth () { $MYTHSHUTDOWN --unlock ; }
+
 true # Make sure that this shows success
diff --git a/abs/core-testing/LinHES-system/bin/checkbackup b/abs/core-testing/LinHES-system/bin/checkbackup
index 129e5ff..b6d8587 100755
--- a/abs/core-testing/LinHES-system/bin/checkbackup
+++ b/abs/core-testing/LinHES-system/bin/checkbackup
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 #----------------------------------------------------------------------------
-. $LinHES_ROOT/bin/backupcommon || {
+. /usr/LH/bin/backupcommon || {
     echo 1>&2 "Can not load common settings!"
     exit 1
 }
diff --git a/abs/core-testing/LinHES-system/bin/checkrestore b/abs/core-testing/LinHES-system/bin/checkrestore
index 73eb6bc..ef0360c 100755
--- a/abs/core-testing/LinHES-system/bin/checkrestore
+++ b/abs/core-testing/LinHES-system/bin/checkrestore
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 #----------------------------------------------------------------------------
-. $LinHES_ROOT/bin/backupcommon  || {
+. /usr/LH/bin/backupcommon || {
     echo 1>&2 "Can not load common settings!"
     exit 1
 }
diff --git a/abs/core-testing/LinHES-system/bin/library.sh b/abs/core-testing/LinHES-system/bin/library.sh
new file mode 100755
index 0000000..2049de3
--- /dev/null
+++ b/abs/core-testing/LinHES-system/bin/library.sh
@@ -0,0 +1,164 @@
+msg () {  # A status reporting function
+    [ "${VERBOSE:-0}" -gt 0 ] && echo "$*"
+}
+
+error () { # An error reporting function
+    echo 1>&2 "$*"
+}
+
+fatal () { # Report an error and exit with a failure code
+    error "$*"
+    exit 1
+}
+
+# The only non builtin this uses is tr...
+require () { # Check prerequisites
+    e=0
+    props="$1" ; shift
+    for obj in "$@" ; do
+        [ -z "$obj" ] && continue # Too late to do anything itelligent...
+        problems=""
+        for prop in $(/bin/tr '+,' ' ' <<<"$props") ; do
+            case "$prop" in
+            e|exists) # kind of useless...
+                [ -e "$obj" ] || problems="$problems, does not exist" ;;
+            f|file)
+                [ -f "$obj" ] || problems="$problems, is not a file" ;;
+            d|dir)
+                [ -d "$obj" ] || problems="$problems, is not a directory" ;;
+            l|symlink)
+                [ -L "$obj" ] || problems="$problems, is not a symlink" ;;
+            nosymlink)
+                [ -L "$obj" ] && problems="$problems, is a symlink" ;;
+            r|readable)
+                [ -r "$obj" ] || problems="$problems, is not readable" ;;
+            w|writable)
+                [ -w "$obj" ] || problems="$problems, is not writable" ;;
+            x|executable)
+                [ -x "$obj" ] || problems="$problems, is not executable" ;;
+            *)
+                fatal "Programmer error, unknown property: '$prop'" ;;
+            esac
+        done
+        if [ -n "$problems" ] ; then
+            error "Error: '$obj'$problems."
+            e=1
+        fi
+    done
+    [ "$e" -ne 0 ] && fatal "Errors noted above are fatal."
+}
+
+require file+r+x /bin/bash /bin/grep /bin/rm /bin/tr \
+                 /usr/bin/basename /usr/bin/env \
+                 /usr/bin/mysql /usr/bin/sort
+
+if [ -n "$DEBUG" ] ; then
+    for debug_opt in $(/bin/tr ',' ' ' <<<"$DEBUG") ; do
+        echo '============================================================'
+        echo "==== $debug_opt"
+
+        # Note that the order you specifiy these debug options in matters.
+        # I recommend always listing log first. For example:
+        #   export DEBUG=log,env,set,trace
+        case "$debug_opt" in
+        env)    /usr/bin/env | /usr/bin/sort ;;
+        set)    set ;;
+        trace)  set -vx ;;
+        log)    logfile="/tmp/$(/usr/bin/basename $0).$$.debug"
+                /bin/rm -f "$logfile" # Try to avoid privilege escalation bugs
+                echo "Redirecting stdout and stderr to '$logfile'"
+                exec >"$logfile" 2>&1 ;;
+        *)      error "Unknown debug option '$debug_opt'" ;;
+        esac
+    done
+    echo '============================================================'
+fi
+
+must_be_root () { # For things which must be run as root
+    [ $(/usr/bin/id -u) -ne 0 ] && fatal "You must run this script as root!"
+}
+
+must_be_mythtv () { # For things which must be run as mythtv (su if possible)
+    case $(/usr/bin/id -nu) in
+    mythtv) ;; # Continue
+    root)   /bin/su - mythtv -c "$0 $*" ; exit $? ;;
+    *)      fatal "You must run this script at mythtv or root!" ;;
+    esac
+}
+
+# Use a variable so you can override it.
+DATABASE="mythconverg"
+
+mysql_cmd () { # Execute SQL from the command line
+    /usr/bin/mysql -u root "$DATABASE" -sBe "$*"
+}
+
+mysql_stdin () { # Execute SQL from stdin
+    /usr/bin/mysql -u root "$DATABASE" -sB
+}
+
+machine_clause () { # Helper function 
+    if [ -z "$1" ] ; then
+        echo "(hostname = '' or hostname is null)"
+    else
+        echo "hostname = '$1'"
+    fi
+}
+
+get_all_setting_names () { # List setting names
+    case "$#" in
+    0) MACHINE_CLAUSE="" ;;
+    1) MACHINE_CLAUSE="where $(machine_clause "$1")" ;;
+    *) fatal "Programmer error, get_all_names must be passed 0 or 1 args, got $#" ;;
+    esac
+    mysql_cmd "select distinct value from settings $MACHINE_CLAUSE order by value"
+}
+
+get_all_setting_values () { # List settings
+    case "$#" in
+    0) MACHINE_CLAUSE="" ;;
+    1) MACHINE_CLAUSE="where $(machine_clause "$1")" ;;
+    *) fatal "Programmer error, get_all_values must be passed 0 or 1 args, got $#" ;;
+    esac
+    mysql_cmd "select value, data, hostname from settings $MACHINE_CLAUSE order by hostname, value, data"
+}
+
+get_setting_value () { # Get the data for a setting (may return multiples!)
+    case "$#" in
+    1) MACHINE_CLAUSE="" ;;
+    2) MACHINE_CLAUSE="and $(machine_clause "$2")" ;;
+    *) fatal "Programmer error, get_value must be passed 1 or 2 args, got $#" ;;
+    esac
+    mysql_cmd "select data from settings where value = '$1' $MACHINE_CLAUSE"
+}
+
+set_setting_value () { # Insert or update aome setting
+    case "$#" in
+    2) RECORD_CNT=$(get_value "$1" | wc -l) ;;
+    3) RECORD_CNT=$(get_value "$1" "$3" | wc -l) ;;
+    *) fatal "Programmer error, set_value must be passed 2 or 3 args, got $#" ;;
+    esac
+    MACHINE_CLAUSE=""
+    if [ "$RECORD_CNT" -eq 0 ] ; then
+        [ -n "$3" ] && MACHINE_CLAUSE=", $(machine_clause "$3")"
+        mysql_cmd "insert into settings set value = '$1', data = '$2' $MACHINE_CLAUSE"
+    else
+        [ "$#" -eq 3 ] && MACHINE_CLAUSE="and $(machine_clause "$3")"
+        mysql_cmd "update settings set data = '$2' where value = '$1' $MACHINE_CLAUSE"
+    fi
+}
+
+delete_setting_value () { # Totally remove some setting
+    case "$#" in
+    1) MACHINE_CLAUSE="" ;;
+    2) MACHINE_CLAUSE="and $(machine_clause "$2")" ;;
+    *) fatal "Programmer error, get_value must be passed 1 or 2 args, got $#" ;;
+    esac
+    mysql_cmd "delete from settings where value = '$1' $MACHINE_CLAUSE"
+}
+
+# Filter against a newline seperated exclude list
+filter_list () {
+    /bin/grep -vxF "$*" |
+    /usr/bin/sort -u
+}
diff --git a/abs/core-testing/LinHES-system/bin/mythbackup b/abs/core-testing/LinHES-system/bin/mythbackup
index dfba611..d3cc4e8 100755
--- a/abs/core-testing/LinHES-system/bin/mythbackup
+++ b/abs/core-testing/LinHES-system/bin/mythbackup
@@ -1,18 +1,18 @@
 #!/bin/bash
 
 #----------------------------------------------------------------------------
-. $LinHES_ROOT/bin/backupcommon  || {
+. /usr/LH/bin/backupcommon || {
     echo 1>&2 "Can not load common settings!"
     exit 1
 }
 #----------------------------------------------------------------------------
 
+# Prevent mythshutdown from shutting down the system in the middle...
+lock_myth
+
 # Play a sound to let you know I'm starting.
 play_sound init.wav
 
-# Prevent mythshutdown from shutting down the system in the middle...
-/usr/bin/mythshutdown --lock
-
 # Keep a chain of recent backups,
 echo "Starting rollover of old backups, this may take a while..."
 [ -f "$BACKUP_SQL" ] && shrink $BACKUP_SQL
@@ -23,16 +23,16 @@ echo "Rollover completed."
 # Start with the database backup, first we make sure it's healthy, and
 # then we can dump it.
 # Doing this while the backend is active would be BAD.
-/etc/init.d/mythtv-backend stop
+stop_mythbackend
 
 # Stop, check, and fix $DATABASE db to ensure clean copy, then restart it.
-/etc/init.d/mysql stop
+stop_mysqld
 cd $DATABASE_DIR
-/usr/bin/myisamchk -f *.MYI
-/etc/init.d/mysql stop ; /etc/init.d/mysql start
+$MYISAMCHK -f *.MYI
+start_mysqld
 
 # Dumps the $DATABASE database
-/usr/bin/mysqldump -c -u root $DATABASE > $BACKUP_SQL
+$MYSQLDUMP -c -u root $DATABASE > $BACKUP_SQL
 shrink $BACKUP_SQL
 
 # Now to backup the other files, no fooling around, grab everything in the
@@ -41,13 +41,13 @@ shrink $BACKUP_SQL
 
 # gather all the things in the list into a nice tidy bundle
 cd /
-/bin/tar cvf $BACKUP_TAR $BACKUP_LIST 2>&1 |
-    /bin/sed -e '/Error exit delayed from previous errors/d'
+$TAR cvf $BACKUP_TAR $BACKUP_LIST 2>&1 |
+    $SED -e '/Error exit delayed from previous errors/d'
 shrink $BACKUP_TAR
 
 # If you can't read this you've got no business restoring from it anyway.
-/bin/chown root:root $BACKUP_TAR* $BACKUP_SQL*
-/bin/chmod go-rwx $BACKUP_TAR* $BACKUP_SQL*
+$CHOWN root:root $BACKUP_TAR* $BACKUP_SQL*
+$CHMOD go-rwx $BACKUP_TAR* $BACKUP_SQL*
 
 echo "Sanity checking your backup..."
 play_sound testing.wav
@@ -63,9 +63,9 @@ else
 fi
 
 # Now we can restart the backend.
-/etc/init.d/mythtv-backend stop ; /etc/init.d/mythtv-backend start
+start_mythbackend
 
 # Unlock the system again...
-/usr/bin/mythshutdown --unlock
+unlock_myth
 
 exit $STATUS
diff --git a/abs/core-testing/LinHES-system/bin/mythrestore b/abs/core-testing/LinHES-system/bin/mythrestore
index c13d357..7fce371 100755
--- a/abs/core-testing/LinHES-system/bin/mythrestore
+++ b/abs/core-testing/LinHES-system/bin/mythrestore
@@ -1,10 +1,7 @@
 #!/bin/bash
 
-# Let's prevent mythshutdown from shutting down the system.
-/usr/bin/mythshutdown --lock
-
 #----------------------------------------------------------------------------
-. $LinHES_ROOT/bin/backupcommon  || {
+. /usr/LH/bin/backupcommon || {
     echo 1>&2 "Can not load common settings!"
     exit 1
 }
@@ -18,7 +15,7 @@ do_file_updates() {  # A function because we need to do this in two places
 
 do_db_updates() {
     # We need to redo this since we just restored the old settings...
-    /usr/bin/mythshutdown --lock
+    lock_myth
     # This is gross, but makes sure that the lock count has a sane value...
     mysql_cmd "update settings set data = '1' where value = 'MythShutdownLock'"
 
@@ -37,11 +34,14 @@ do_db_updates() {
     mysql_cmd "drop table mythweb_sessions" >/dev/null 2>&1
 }
 
+# Let's prevent mythshutdown from shutting down the system.
+lock_myth
+
 # Play a sound to let you know I'm starting.
 play_sound restore.wav
 
 # Doing this while the backend is active could be BAD.
-/etc/init.d/mythtv-backend stop
+stop_mythbackend
 
 # If the standard backup file exists we try to restore the files based
 # on our restore list.
@@ -49,8 +49,8 @@ if compression=$(compression_type "$BACKUP_TAR") ; then
     echo "Starting the restore of files..."
     cd /
     expand -c $BACKUP_TAR$compression |
-        /bin/tar xpvf - $RESTORE_LIST $EXCLUSION 2>&1 |
-        /bin/sed -e '/Error exit delayed from previous errors/d'
+        $TAR xpvf - $RESTORE_LIST $EXCLUSION 2>&1 |
+        $SED -e '/Error exit delayed from previous errors/d'
     echo "Completed the restore of files."
 fi
 
@@ -58,9 +58,9 @@ fi
 if compression=$(compression_type "$BACKUP_SQL") ; then
     echo "Starting the DB restore, this can take a while..."
     echo "Clearing out the existing skeleton..."
-    mysql_stdin < $DROP_SQL
+    #mysql_stdin < $DROP_SQL
     echo "Recreating the db..."
-    /usr/bin/mysqladmin -u root create $DATABASE
+    $MYSQLADMIN -u root create $DATABASE
     echo "Restoring the data (long)..."
     expand -c $BACKUP_SQL$compression | mysql_stdin
     echo "Doing any needed db updates..."
@@ -87,6 +87,6 @@ do_db_updates
 do_file_updates
 
 # Now it's more or less safe to restart the backend.
-/etc/init.d/mythtv-backend stop ; /etc/init.d/mythtv-backend start
+start_mythbackend
 
 exit $STATUS
diff --git a/abs/core-testing/LinHES-system/bin/rollback.sh b/abs/core-testing/LinHES-system/bin/rollback.sh
new file mode 100755
index 0000000..12897da
--- /dev/null
+++ b/abs/core-testing/LinHES-system/bin/rollback.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+#----------------------------------------------------------------------------
+. /usr/LH/bin/backupcommon || {
+    echo 1>&2 "Can not load common settings!"
+    exit 1
+}
+#----------------------------------------------------------------------------
+
+require file+r+x $MYTHSHUTDOWN
+
+# Prevent mythshutdown from shutting down the system in the middle...
+lock_myth
+
+echo "Starting rollback of old backups"
+backup_roller '' .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 .17 .18 .19
+echo "Rollback completed."
+
+# Unlock the system again...
+unlock_myth
-- 
cgit v0.12


From 8cd0a2c03be58a6b03f05da0565286819897720a Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 10 Jan 2009 20:55:40 -0500
Subject: Added Hauppauge HD-PVR drivers

---
 abs/extra-testing/mercurial/ChangeLog           | 17 ++++++++++++
 abs/extra-testing/mercurial/PKGBUILD            | 35 +++++++++++++++++++++++++
 abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD        | 27 +++++++++++++++++++
 abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install | 23 ++++++++++++++++
 4 files changed, 102 insertions(+)
 create mode 100644 abs/extra-testing/mercurial/ChangeLog
 create mode 100644 abs/extra-testing/mercurial/PKGBUILD
 create mode 100644 abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
 create mode 100644 abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install

diff --git a/abs/extra-testing/mercurial/ChangeLog b/abs/extra-testing/mercurial/ChangeLog
new file mode 100644
index 0000000..fa0df00
--- /dev/null
+++ b/abs/extra-testing/mercurial/ChangeLog
@@ -0,0 +1,17 @@
+
+2009-01-03  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 1.1.2
+
+2008-12-02  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 1.1
+
+2008-08-17  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 1.0.2
+
+2008-07-10  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 1.0.1
+
diff --git a/abs/extra-testing/mercurial/PKGBUILD b/abs/extra-testing/mercurial/PKGBUILD
new file mode 100644
index 0000000..74de74a
--- /dev/null
+++ b/abs/extra-testing/mercurial/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 23135 2009-01-03 12:10:17Z douglas $
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Giovanni Scafora <linuxmania@gmail.com>
+# Contributor: David 'SleepyDog' <goodluv@gmail.com>
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=mercurial
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="A scalable distributed SCM tool"
+url="http://www.selenic.com/mercurial"
+license=("GPL")
+depends=('python>=2.5')
+source=(http://www.selenic.com/mercurial/release/$pkgname-$pkgver.tar.gz)
+arch=('i686' 'x86_64')
+
+build() {
+    cd $startdir/src/$pkgname-$pkgver
+    python setup.py install --root $startdir/pkg
+    
+    install -d $startdir/pkg/usr/share/man/{man1,man5}
+    install -m644 doc/hg.1 $startdir/pkg/usr/share/man/man1
+    install -m644 doc/{hgrc.5,hgignore.5} $startdir/pkg/usr/share/man/man5
+    install -m755 contrib/hgk $startdir/pkg/usr/bin
+    install -m644 -D contrib/zsh_completion $startdir/pkg/usr/share/zsh/site-functions/_hg
+    install -m644 -D contrib/bash_completion $startdir/pkg/etc/bash_completion.d/hg 
+    install -d $startdir/pkg/usr/share/emacs/site-lisp
+    install -m644 contrib/{mq.el,mercurial.el} $startdir/pkg/usr/share/emacs/site-lisp
+    install -m644 -D contrib/vim/HGAnnotate.vim $startdir/pkg/usr/share/vim/syntax/HGAnnotate.vim
+
+    # Autoloading plugins to vim = no good.  
+    #  install -d $startdir/pkg/usr/share/vim/plugin
+    #  install -m644 contrib/vim/{hg-menu.vim,hgcommand.vim,patchreview.vim} $startdir/pkg/usr/share/vim/plugin
+}
+md5sums=('4fd3b9a2e5dcd025840c3849b136bec8')
diff --git a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
new file mode 100644
index 0000000..7464266
--- /dev/null
+++ b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=v4l-dvb-hdpvr
+_kernver=2.6.26-ARCH
+pkgver=1
+pkgrel=1
+pkgdesc="V4L-DVB drivers for HD-PVR from mercurial"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://linuxtv.org/"
+depends=('kernel26')
+replaces=(v4l-dvb)
+makedepends=(kernel-headers)
+install=v4l-dvb.install
+source=()
+
+build() {
+  cd $startdir/src/
+  hg clone http://hg.jannau.net/hdpvr/ || return 1
+  cd hdpvr
+  make KERNDIR=/lib/modules/$_kernver/build \
+  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver all || return 1
+  make KERNDIR=/lib/modules/$_kernver/build \
+  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install || return 1
+  rm -fr $startdir/pkg/lib/modules/$_kernver/modules*
+}
diff --git a/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install
new file mode 100644
index 0000000..c87bb82
--- /dev/null
+++ b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install
@@ -0,0 +1,23 @@
+# arg 1:  the new package version
+post_install() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+
+}
+
+# arg 1:  the old package version
+post_remove() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+}
+
+op=$1
+shift
+$op $*
-- 
cgit v0.12


From c9a21e49990da76516f862b690aa8e7ceda42e46 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 10 Jan 2009 21:21:13 -0500
Subject: renamed install file

---
 .../v4l-dvb-hdpvr/v4l-dvb-hdpvr.install            | 23 ++++++++++++++++++++++
 abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install    | 23 ----------------------
 2 files changed, 23 insertions(+), 23 deletions(-)
 create mode 100644 abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install
 delete mode 100644 abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install

diff --git a/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install
new file mode 100644
index 0000000..c87bb82
--- /dev/null
+++ b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb-hdpvr.install
@@ -0,0 +1,23 @@
+# arg 1:  the new package version
+post_install() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+
+}
+
+# arg 1:  the old package version
+post_remove() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install b/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install
deleted file mode 100644
index c87bb82..0000000
--- a/abs/extra-testing/v4l-dvb-hdpvr/v4l-dvb.install
+++ /dev/null
@@ -1,23 +0,0 @@
-# arg 1:  the new package version
-post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
-  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  KERNEL_VERSION='2.6.26-ARCH'
-  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
-
-}
-
-# arg 1:  the old package version
-post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
-  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
-}
-
-op=$1
-shift
-$op $*
-- 
cgit v0.12


From c18b7a805648a5920424454ec5237d699ce4eecc Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 10 Jan 2009 21:24:44 -0500
Subject: changed install file

---
 abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
index 7464266..d10c398 100644
--- a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
+++ b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
@@ -12,7 +12,7 @@ url="http://linuxtv.org/"
 depends=('kernel26')
 replaces=(v4l-dvb)
 makedepends=(kernel-headers)
-install=v4l-dvb.install
+install=v4l-dvb-hdpvr.install
 source=()
 
 build() {
-- 
cgit v0.12


From ae4a3db9403d07e987efc351701eb5429baff635 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sun, 11 Jan 2009 13:27:23 -0500
Subject: added make dependency for mercurial

---
 abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
index d10c398..f2bc1d3 100644
--- a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
+++ b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
@@ -11,7 +11,7 @@ license=('GPL2')
 url="http://linuxtv.org/"
 depends=('kernel26')
 replaces=(v4l-dvb)
-makedepends=(kernel-headers)
+makedepends=(kernel-headers mercurial)
 install=v4l-dvb-hdpvr.install
 source=()
 
-- 
cgit v0.12


From bcf5ec3fa5da5bbac9a1eaba782bbcea0278d9b7 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 11 Jan 2009 10:41:04 -0800
Subject: Updated various packages.

---
 abs/core-testing/LinHES-config/PKGBUILD            |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.ati     |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.intel   |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.nvidia  |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.vesa    |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.via     |     2 +-
 .../LinHES-config/templates/xorg/xorg.conf.vmware  |     2 +-
 abs/core-testing/LinHES-config/xconfig.sh          |     9 +-
 abs/core-testing/aalib/PKGBUILD                    |     7 +-
 abs/core-testing/acpid/PKGBUILD                    |    53 +-
 abs/core-testing/acpid/handler.sh                  |   106 +-
 abs/core-testing/alsa-lib/PKGBUILD                 |    12 +-
 abs/core-testing/alsa-oss/PKGBUILD                 |     8 +-
 abs/core-testing/alsa-utils/PKGBUILD               |    20 +-
 abs/core-testing/alsa-utils/alsa                   |    28 +-
 abs/core-testing/alsa-utils/alsa.conf.d            |    11 +
 abs/core-testing/aspell/PKGBUILD                   |    31 +-
 abs/core-testing/aspell/aspell.install             |    23 +-
 abs/core-testing/ati-dri/PKGBUILD                  |    38 +
 .../ati-dri/mesa-7.1-link-shared.patch             |   102 +
 abs/core-testing/avahi/ChangeLog                   |     4 +
 abs/core-testing/avahi/PKGBUILD                    |    25 +-
 abs/core-testing/avahi/gnome-nettool.png           |   Bin 0 -> 4509 bytes
 abs/core-testing/dbus-core/PKGBUILD                |    53 +
 abs/core-testing/dbus-core/dbus                    |    57 +
 abs/core-testing/dbus-core/dbus.install            |    21 +
 abs/core-testing/dbus-glib/PKGBUILD                |    12 +-
 abs/core-testing/dbus-python/PKGBUILD              |     8 +-
 abs/core-testing/dbus/30-dbus                      |     9 +
 abs/core-testing/dbus/PKGBUILD                     |    44 +-
 abs/core-testing/dvb-firmware/PKGBUILD             |     4 +-
 abs/core-testing/fam/PKGBUILD                      |    49 +
 abs/core-testing/fam/fam                           |    44 +
 abs/core-testing/fam/fam-2.7.0-dnotify.patch       |   975 ++
 abs/core-testing/fam/fam-2.7.0-gcc43.patch         |    46 +
 abs/core-testing/fam/fam-2.7.0-largefiles.patch    |     8 +
 abs/core-testing/fam/fam-2.7.0-noc++.patch         |    83 +
 abs/core-testing/fam/include_fam_h.patch           |    11 +
 abs/core-testing/fftw/PKGBUILD                     |    48 +
 abs/core-testing/fftw/fftw.install                 |    22 +
 abs/core-testing/fluxbox/ChangeLog                 |    10 +
 abs/core-testing/fluxbox/PKGBUILD                  |    43 +-
 abs/core-testing/fluxbox/keys                      |     6 +-
 abs/core-testing/ghostscript/PKGBUILD              |     7 +-
 abs/core-testing/gnutls/PKGBUILD                   |    14 +-
 abs/core-testing/gnutls/gnutls.install             |    18 +
 abs/core-testing/gsfonts/PKGBUILD                  |     2 +-
 abs/core-testing/gtk2/PKGBUILD                     |    24 +-
 abs/core-testing/gtk2/gtk2-emit-size-change.patch  |    26 +
 abs/core-testing/hal-info/PKGBUILD                 |    16 +-
 abs/core-testing/hal/PKGBUILD                      |    22 +-
 abs/core-testing/hal/fix-udev-compatibility.patch  |    31 +
 abs/core-testing/hal/ntfs-mount-fix.patch          |    18 +
 abs/core-testing/heimdal/PKGBUILD                  |    69 +-
 abs/core-testing/heimdal/heimdal.install           |    20 +
 abs/core-testing/ilmbase/PKGBUILD                  |    22 +
 abs/core-testing/imagemagick/ChangeLog             |    47 +
 abs/core-testing/imagemagick/PKGBUILD              |    22 +-
 abs/core-testing/inputproto/PKGBUILD               |    14 +-
 abs/core-testing/intel-dri/PKGBUILD                |    59 +-
 .../intel-dri/intel-disable-ttm-warning.patch      |    13 +
 abs/core-testing/intel-dri/intel-revert-vbl.patch  |    21 +
 .../intel-dri/mesa-7.1-link-shared.patch           |   102 +
 abs/core-testing/intltool/ChangeLog                |    29 +
 abs/core-testing/intltool/PKGBUILD                 |    22 +
 .../jack-audio-connection-kit/PKGBUILD             |     4 +-
 abs/core-testing/kdelibs3/PKGBUILD                 |     4 +-
 abs/core-testing/libcups/PKGBUILD                  |    11 +-
 abs/core-testing/libdaemon/PKGBUILD                |    23 +-
 abs/core-testing/libdrm/PKGBUILD                   |    16 +-
 abs/core-testing/libexif/PKGBUILD                  |    12 +-
 abs/core-testing/libgcrypt/PKGBUILD                |    17 +-
 abs/core-testing/libgcrypt/libgcrypt.install       |    20 +
 abs/core-testing/libgl/PKGBUILD                    |    63 +-
 abs/core-testing/libgl/mesa-7.1-link-shared.patch  |   102 +
 abs/core-testing/libglade/PKGBUILD                 |    18 +-
 abs/core-testing/libglade/glade.install            |     5 -
 abs/core-testing/libgsf/PKGBUILD                   |    16 +-
 abs/core-testing/libidn/PKGBUILD                   |    28 +-
 abs/core-testing/libidn/libidn.install             |    19 +
 abs/core-testing/libpcap/PKGBUILD                  |    48 +-
 abs/core-testing/libpciaccess/PKGBUILD             |    24 +
 abs/core-testing/libpng/ChangeLog                  |     4 +
 abs/core-testing/libpng/PKGBUILD                   |    17 +-
 abs/core-testing/librsvg/PKGBUILD                  |    17 +-
 abs/core-testing/librsvg/librsvg.install           |     1 -
 abs/core-testing/libtasn1/PKGBUILD                 |    21 +-
 abs/core-testing/libtasn1/libtasn1.install         |    18 +
 abs/core-testing/libtool/PKGBUILD                  |    14 +-
 abs/core-testing/libtool/libtool.install           |    20 +
 abs/core-testing/libx11/PKGBUILD                   |    31 +-
 abs/core-testing/libx11/xorg.sh                    |     4 -
 abs/core-testing/libxaw/PKGBUILD                   |    19 +-
 abs/core-testing/libxml2/PKGBUILD                  |    21 +-
 abs/core-testing/libxml2/largefile64.patch         |    12 +
 abs/core-testing/lighttpd/PKGBUILD                 |    44 +-
 abs/core-testing/mcpp/PKGBUILD                     |    26 +-
 abs/core-testing/mesa/PKGBUILD                     |    73 +-
 abs/core-testing/mesa/mesa-7.1-link-shared.patch   |   102 +
 .../mythtv/stable/mytharchive/PKGBUILD             |     6 +-
 .../mythtv/stable/mythbrowser/PKGBUILD             |     6 +-
 .../mythtv/stable/mythcontrols/PKGBUILD            |     6 +-
 abs/core-testing/mythtv/stable/mythflix/PKGBUILD   |     6 +-
 .../mythtv/stable/mythgallery/PKGBUILD             |     6 +-
 abs/core-testing/mythtv/stable/mythgame/PKGBUILD   |     6 +-
 abs/core-testing/mythtv/stable/mythmusic/PKGBUILD  |     6 +-
 abs/core-testing/mythtv/stable/mythnews/PKGBUILD   |     6 +-
 abs/core-testing/mythtv/stable/mythphone/PKGBUILD  |     6 +-
 abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD  |     2 +-
 abs/core-testing/mythtv/stable/mythtv/PKGBUILD     |     6 +-
 .../stable/mythtv/menu-xml/library.xml.patch       |    16 +-
 abs/core-testing/mythtv/stable/mythvideo/PKGBUILD  |     6 +-
 .../mythtv/stable/mythweather/PKGBUILD             |     6 +-
 abs/core-testing/mythtv/stable/mythweb/PKGBUILD    |     6 +-
 abs/core-testing/nvidia-71xx/PKGBUILD              |     4 +-
 abs/core-testing/nvidia-71xx/nvidia-71xx.install   |     4 +-
 abs/core-testing/nvidia-96xx-utils/PKGBUILD        |    14 +-
 abs/core-testing/nvidia-96xx/PKGBUILD              |    22 +-
 abs/core-testing/nvidia-96xx/nvidia-96xx.install   |     4 +-
 abs/core-testing/nvidia-utils/PKGBUILD             |    10 +-
 abs/core-testing/nvidia/PKGBUILD                   |    14 +-
 abs/core-testing/nvidia/nvidia.install             |     4 +-
 abs/core-testing/openexr/PKGBUILD                  |    23 +-
 abs/core-testing/openexr/gcc43.patch               |    25 +-
 abs/core-testing/openssh/PKGBUILD                  |    18 +-
 abs/core-testing/openssl/PKGBUILD                  |    26 +-
 abs/core-testing/pam/PKGBUILD                      |    17 +-
 abs/core-testing/pango/PKGBUILD                    |    18 +-
 abs/core-testing/pango/bgo563356.patch             |   305 +
 abs/core-testing/pil/PKGBUILD                      |    22 +-
 abs/core-testing/plextor-convertX-driver/PKGBUILD  |     7 +-
 .../wis-go7007-linux-0.9.8-2-2.6.27.patch          |    83 +
 abs/core-testing/ppp/PKGBUILD                      |     8 +-
 abs/core-testing/pygobject/PKGBUILD                |    16 +-
 abs/core-testing/pygtk/PKGBUILD                    |    21 +-
 abs/core-testing/python-numeric/PKGBUILD           |     6 +-
 abs/core-testing/python/ChangeLog                  |     9 +
 abs/core-testing/python/PKGBUILD                   |    57 +-
 abs/core-testing/python/modulator-launcher         |     2 +-
 abs/core-testing/python/pynche-launcher            |     2 +-
 abs/core-testing/python/python-2.6-gdbm.patch      |    12 +
 .../python/python-2.6-internal-expat.patch         |    33 +
 abs/core-testing/samba/PKGBUILD                    |    79 +-
 abs/core-testing/smbclient/PKGBUILD                |    55 +-
 abs/core-testing/sqlite3/PKGBUILD                  |    20 +-
 abs/core-testing/tcl/ChangeLog                     |    12 +-
 abs/core-testing/tcl/PKGBUILD                      |     8 +-
 abs/core-testing/tdb/PKGBUILD                      |    17 +-
 abs/core-testing/tk/ChangeLog                      |    15 +-
 abs/core-testing/tk/PKGBUILD                       |     8 +-
 abs/core-testing/ttf-dejavu/ChangeLog              |    10 +
 abs/core-testing/ttf-dejavu/PKGBUILD               |     6 +-
 abs/core-testing/udev/PKGBUILD                     |     8 +-
 abs/core-testing/udev/arch-udev-rules.patch        |    46 +-
 abs/core-testing/unichrome-dri/PKGBUILD            |    56 +-
 .../unichrome-dri/mesa-7.1-link-shared.patch       |   102 +
 abs/core-testing/v4l-dvb/PKGBUILD                  |     4 +-
 abs/core-testing/v4l-dvb/v4l-dvb.install           |     6 +-
 abs/core-testing/xf86-input-aiptek/PKGBUILD        |    13 +-
 abs/core-testing/xf86-input-calcomp/PKGBUILD       |    11 +-
 abs/core-testing/xf86-input-digitaledge/PKGBUILD   |    13 +-
 abs/core-testing/xf86-input-dmc/PKGBUILD           |    11 +-
 abs/core-testing/xf86-input-dynapro/PKGBUILD       |    11 +-
 abs/core-testing/xf86-input-elographics/PKGBUILD   |    16 +-
 abs/core-testing/xf86-input-evdev/PKGBUILD         |    15 +-
 abs/core-testing/xf86-input-fpit/PKGBUILD          |    13 +-
 abs/core-testing/xf86-input-hyperpen/PKGBUILD      |    13 +-
 abs/core-testing/xf86-input-jamstudio/PKGBUILD     |    13 +-
 abs/core-testing/xf86-input-joystick/PKGBUILD      |    12 +-
 abs/core-testing/xf86-input-magellan/PKGBUILD      |    11 +-
 abs/core-testing/xf86-input-magictouch/PKGBUILD    |     9 +-
 abs/core-testing/xf86-input-microtouch/PKGBUILD    |    11 +-
 abs/core-testing/xf86-input-mutouch/PKGBUILD       |    17 +-
 abs/core-testing/xf86-input-palmax/PKGBUILD        |    13 +-
 abs/core-testing/xf86-input-penmount/PKGBUILD      |    11 +-
 abs/core-testing/xf86-input-summa/PKGBUILD         |    13 +-
 abs/core-testing/xf86-input-synaptics/PKGBUILD     |    31 +
 abs/core-testing/xf86-input-tek4957/PKGBUILD       |    13 +-
 abs/core-testing/xf86-input-ur98/PKGBUILD          |     9 +-
 abs/core-testing/xf86-input-vmmouse/PKGBUILD       |    19 +-
 abs/core-testing/xf86-input-void/PKGBUILD          |    16 +-
 abs/core-testing/xf86-video-amd/PKGBUILD           |    19 +-
 abs/core-testing/xf86-video-apm/PKGBUILD           |    15 +-
 abs/core-testing/xf86-video-ark/PKGBUILD           |    15 +-
 abs/core-testing/xf86-video-ati/PKGBUILD           |    59 +-
 abs/core-testing/xf86-video-ati/git-20081021.patch | 17245 +++++++++++++++++++
 .../xf86-video-ati/mesa-7.1-link-shared.patch      |   102 +
 abs/core-testing/xf86-video-chips/PKGBUILD         |    13 +-
 abs/core-testing/xf86-video-cirrus/PKGBUILD        |     7 +-
 abs/core-testing/xf86-video-dummy/PKGBUILD         |    14 +-
 abs/core-testing/xf86-video-fbdev/PKGBUILD         |    17 +-
 abs/core-testing/xf86-video-glint/PKGBUILD         |    18 +-
 abs/core-testing/xf86-video-i128/PKGBUILD          |    14 +-
 abs/core-testing/xf86-video-i740/PKGBUILD          |    13 +-
 .../xf86-video-intel/20_thinkpad_g40_quirk.patch   |    18 +
 .../xf86-video-intel/21_quirk_lenovo.patch         |    12 +
 .../23_quirks_studiohybrid_eeepc_and_w251u.patch   |    13 +
 .../xf86-video-intel/25_quirk_nc6110.patch         |    13 +
 .../26_i830-use-lfp-data-ptrs.patch                |    63 +
 .../xf86-video-intel/27_disable_fbc_on_965.patch   |    18 +
 abs/core-testing/xf86-video-intel/PKGBUILD         |    44 +-
 abs/core-testing/xf86-video-mach64/PKGBUILD        |    48 +
 .../xf86-video-mach64/mesa-7.1-link-shared.patch   |   102 +
 abs/core-testing/xf86-video-mga/PKGBUILD           |    57 +-
 .../xf86-video-mga/mesa-7.1-link-shared.patch      |   102 +
 abs/core-testing/xf86-video-neomagic/PKGBUILD      |    13 +-
 abs/core-testing/xf86-video-nv/PKGBUILD            |    18 +-
 abs/core-testing/xf86-video-openchrome/LICENSE.txt |    26 +
 abs/core-testing/xf86-video-openchrome/PKGBUILD    |    29 +
 abs/core-testing/xf86-video-r128/PKGBUILD          |    48 +
 .../xf86-video-r128/mesa-7.1-link-shared.patch     |   102 +
 abs/core-testing/xf86-video-radeonhd/PKGBUILD      |    25 +-
 abs/core-testing/xf86-video-rendition/PKGBUILD     |    14 +-
 abs/core-testing/xf86-video-s3/PKGBUILD            |    18 +-
 abs/core-testing/xf86-video-s3virge/PKGBUILD       |    45 +-
 abs/core-testing/xf86-video-savage/PKGBUILD        |    57 +-
 .../xf86-video-savage/mesa-7.1-link-shared.patch   |   102 +
 abs/core-testing/xf86-video-siliconmotion/PKGBUILD |    14 +-
 abs/core-testing/xf86-video-sis/PKGBUILD           |    64 +-
 .../xf86-video-sis/mesa-7.1-link-shared.patch      |   102 +
 abs/core-testing/xf86-video-sisusb/PKGBUILD        |    14 +-
 abs/core-testing/xf86-video-tdfx/PKGBUILD          |    63 +-
 .../xf86-video-tdfx/mesa-7.1-link-shared.patch     |   102 +
 abs/core-testing/xf86-video-trident/PKGBUILD       |    66 +-
 .../xf86-video-trident/mesa-7.1-link-shared.patch  |   102 +
 abs/core-testing/xf86-video-tseng/PKGBUILD         |    18 +-
 abs/core-testing/xf86-video-unichrome/PKGBUILD     |    25 +-
 abs/core-testing/xf86-video-v4l/PKGBUILD           |    14 +-
 abs/core-testing/xf86-video-vesa/PKGBUILD          |    19 +-
 abs/core-testing/xf86-video-vga/PKGBUILD           |    26 +-
 abs/core-testing/xf86-video-vga/pciaccess.patch    |   371 +
 abs/core-testing/xf86-video-vmware/PKGBUILD        |     9 +-
 abs/core-testing/xf86-video-voodoo/PKGBUILD        |    14 +-
 abs/core-testing/xkeyboard-config/PKGBUILD         |    26 +-
 abs/core-testing/xkeyboard-config/fix-abnt2.patch  |    20 +
 abs/core-testing/xorg-apps/PKGBUILD                |    67 +-
 abs/core-testing/xorg-server-utils/PKGBUILD        |    36 +-
 .../xorg-server/001_fedora_extramodes.patch        |    85 +
 abs/core-testing/xorg-server/PKGBUILD              |   102 +-
 .../xorg-redhat-die-ugly-pattern-die-die-die.patch |    16 +
 abs/core-testing/xorg-server/xorg-server.install   |    25 +-
 .../xorg-server/xserver-1.5-branch-4970d.patch     |   246 +
 ...-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch |    69 +
 .../xserver-1.5.3-AEI-on-by-default.patch          |   108 +
 abs/core-testing/xorg-util-macros/PKGBUILD         |    14 +-
 abs/core-testing/xorg-utils/PKGBUILD               |    21 +-
 abs/core-testing/xorg-xkb-utils/PKGBUILD           |    14 +-
 abs/core-testing/xterm/PKGBUILD                    |    15 +-
 abs/extra-testing/esound/PKGBUILD                  |    34 +
 abs/extra-testing/esound/esd                       |    37 +
 .../esound/esd-0.2.38-alsa-drain.patch             |    11 +
 abs/extra-testing/libdvdcss/PKGBUILD               |    22 +
 abs/extra-testing/live-media/PKGBUILD              |    11 +-
 abs/extra-testing/mingetty/PKGBUILD                |    30 +
 abs/extra-testing/mingetty/mingetty-utf8.patch     |   158 +
 abs/extra-testing/mjpegtools/PKGBUILD              |    24 +-
 .../mjpegtools/mjpegtools-1.8.0-gcc41.patch        |   120 -
 .../mjpegtools/mjpegtools-1.8.0-libc.patch         |   258 +-
 .../mjpegtools/mjpegtools-1.8.0-limits.h.patch     |    30 +
 abs/extra-testing/mplayer/PKGBUILD                 |    42 +-
 .../mplayer/demux_audio_fix_20080129.diff          |    11 -
 .../mplayer/demux_mov_fix_20080129.diff            |    45 -
 abs/extra-testing/mplayer/mplayer_desktop.patch    |    11 +
 .../mplayer/stream_cddb_fix_20080120.diff          |    32 -
 abs/extra-testing/mplayer/url_fix_20080120.diff    |    10 -
 abs/extra-testing/rsync/ChangeLog                  |    25 +
 abs/extra-testing/rsync/PKGBUILD                   |    33 +
 abs/extra-testing/rsync/rsync.xinetd               |    11 +
 abs/extra-testing/rsync/rsyncd                     |    37 +
 abs/extra-testing/rsync/rsyncd.conf                |    16 +
 abs/extra-testing/setuptools/PKGBUILD              |    23 +
 abs/extra-testing/v4l-dvb-dvico/PKGBUILD           |    24 +
 abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install    |    23 +
 abs/extra-testing/xine-lib/ChangeLog               |    12 +
 abs/extra-testing/xine-lib/PKGBUILD                |    34 +-
 abs/extra-testing/xine-lib/xine-imagemagick.patch  |    11 +
 276 files changed, 24607 insertions(+), 2137 deletions(-)
 create mode 100644 abs/core-testing/ati-dri/PKGBUILD
 create mode 100644 abs/core-testing/ati-dri/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/avahi/gnome-nettool.png
 create mode 100644 abs/core-testing/dbus-core/PKGBUILD
 create mode 100644 abs/core-testing/dbus-core/dbus
 create mode 100644 abs/core-testing/dbus-core/dbus.install
 create mode 100644 abs/core-testing/dbus/30-dbus
 create mode 100644 abs/core-testing/fam/PKGBUILD
 create mode 100755 abs/core-testing/fam/fam
 create mode 100644 abs/core-testing/fam/fam-2.7.0-dnotify.patch
 create mode 100644 abs/core-testing/fam/fam-2.7.0-gcc43.patch
 create mode 100644 abs/core-testing/fam/fam-2.7.0-largefiles.patch
 create mode 100644 abs/core-testing/fam/fam-2.7.0-noc++.patch
 create mode 100644 abs/core-testing/fam/include_fam_h.patch
 create mode 100644 abs/core-testing/fftw/PKGBUILD
 create mode 100644 abs/core-testing/fftw/fftw.install
 create mode 100644 abs/core-testing/fluxbox/ChangeLog
 create mode 100644 abs/core-testing/gnutls/gnutls.install
 create mode 100644 abs/core-testing/gtk2/gtk2-emit-size-change.patch
 create mode 100644 abs/core-testing/hal/fix-udev-compatibility.patch
 create mode 100644 abs/core-testing/hal/ntfs-mount-fix.patch
 create mode 100644 abs/core-testing/heimdal/heimdal.install
 create mode 100644 abs/core-testing/ilmbase/PKGBUILD
 create mode 100644 abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
 create mode 100644 abs/core-testing/intel-dri/intel-revert-vbl.patch
 create mode 100644 abs/core-testing/intel-dri/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/intltool/ChangeLog
 create mode 100644 abs/core-testing/intltool/PKGBUILD
 create mode 100644 abs/core-testing/libgcrypt/libgcrypt.install
 create mode 100644 abs/core-testing/libgl/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/libidn/libidn.install
 create mode 100644 abs/core-testing/libpciaccess/PKGBUILD
 create mode 100644 abs/core-testing/libtasn1/libtasn1.install
 create mode 100644 abs/core-testing/libtool/libtool.install
 create mode 100644 abs/core-testing/libxml2/largefile64.patch
 create mode 100644 abs/core-testing/mesa/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/pango/bgo563356.patch
 create mode 100644 abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch
 create mode 100644 abs/core-testing/python/ChangeLog
 create mode 100644 abs/core-testing/python/python-2.6-gdbm.patch
 create mode 100644 abs/core-testing/python/python-2.6-internal-expat.patch
 create mode 100644 abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-input-synaptics/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-ati/git-20081021.patch
 create mode 100644 abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch
 create mode 100644 abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch
 create mode 100644 abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch
 create mode 100644 abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch
 create mode 100644 abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch
 create mode 100644 abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch
 create mode 100644 abs/core-testing/xf86-video-mach64/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-openchrome/LICENSE.txt
 create mode 100644 abs/core-testing/xf86-video-openchrome/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-r128/PKGBUILD
 create mode 100644 abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch
 create mode 100644 abs/core-testing/xf86-video-vga/pciaccess.patch
 create mode 100644 abs/core-testing/xkeyboard-config/fix-abnt2.patch
 create mode 100644 abs/core-testing/xorg-server/001_fedora_extramodes.patch
 create mode 100644 abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
 create mode 100644 abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch
 create mode 100644 abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
 create mode 100644 abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch
 create mode 100644 abs/extra-testing/esound/PKGBUILD
 create mode 100755 abs/extra-testing/esound/esd
 create mode 100644 abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch
 create mode 100644 abs/extra-testing/libdvdcss/PKGBUILD
 create mode 100644 abs/extra-testing/mingetty/PKGBUILD
 create mode 100644 abs/extra-testing/mingetty/mingetty-utf8.patch
 create mode 100644 abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch
 delete mode 100644 abs/extra-testing/mplayer/demux_audio_fix_20080129.diff
 delete mode 100644 abs/extra-testing/mplayer/demux_mov_fix_20080129.diff
 create mode 100644 abs/extra-testing/mplayer/mplayer_desktop.patch
 delete mode 100644 abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff
 delete mode 100644 abs/extra-testing/mplayer/url_fix_20080120.diff
 create mode 100644 abs/extra-testing/rsync/ChangeLog
 create mode 100644 abs/extra-testing/rsync/PKGBUILD
 create mode 100644 abs/extra-testing/rsync/rsync.xinetd
 create mode 100644 abs/extra-testing/rsync/rsyncd
 create mode 100644 abs/extra-testing/rsync/rsyncd.conf
 create mode 100644 abs/extra-testing/setuptools/PKGBUILD
 create mode 100644 abs/extra-testing/v4l-dvb-dvico/PKGBUILD
 create mode 100644 abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install
 create mode 100644 abs/extra-testing/xine-lib/xine-imagemagick.patch

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 1058a17..ef555bc 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=1.0
-pkgrel=148
+pkgrel=151
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan )
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati
index c6d9249..53c8e0b 100644
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.ati
@@ -6,7 +6,7 @@ Section "ServerLayout"
 EndSection
 
 Section "Files"
-	RgbPath      "/usr/share/X11/rgb"
+#	RgbPath      "/usr/share/X11/rgb"
 	ModulePath   "/usr/lib/xorg/modules"
 	FontPath     "/usr/share/fonts/misc"
 	FontPath     "/usr/share/fonts/75dpi"
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel
index a4d258a..f3684fb 100644
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.intel
@@ -13,7 +13,7 @@ Section "ServerFlags"
 EndSection
 
 Section "Files"
-	RgbPath      "/usr/share/X11/rgb"
+#	RgbPath      "/usr/share/X11/rgb"
 	ModulePath   "/usr/lib/xorg/modules"
 	FontPath     "/usr/share/fonts/misc:unscaled"
 	FontPath     "/usr/share/fonts/misc"
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia
index dec0f42..2cc4cb6 100755
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.nvidia
@@ -9,7 +9,7 @@ Section "ServerLayout"
 EndSection
 
 Section "Files"
-    RgbPath         "/usr/X11R6/lib/X11/rgb"
+#    RgbPath         "/usr/X11R6/lib/X11/rgb"
 EndSection
 
 Section "Module"
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa
index c569819..ce62457 100755
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vesa
@@ -9,7 +9,7 @@ Section "ServerLayout"
 EndSection
 
 Section "Files"
-    RgbPath         "/usr/X11R6/lib/X11/rgb"
+#    RgbPath         "/usr/X11R6/lib/X11/rgb"
 EndSection
 
 Section "Module"
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via
index 6dd7821..8454767 100644
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.via
@@ -9,7 +9,7 @@ Section "ServerLayout"
 EndSection
 
 Section "Files"
-    RgbPath         "/usr/X11R6/lib/X11/rgb"
+#    RgbPath         "/usr/X11R6/lib/X11/rgb"
 EndSection
 
 Section "Module"
diff --git a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware
index 843f2f4..a7a5113 100755
--- a/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware
+++ b/abs/core-testing/LinHES-config/templates/xorg/xorg.conf.vmware
@@ -9,7 +9,7 @@ Section "ServerLayout"
 EndSection
 
 Section "Files"
-    RgbPath         "/usr/X11R6/lib/X11/rgb"
+#    RgbPath         "/usr/X11R6/lib/X11/rgb"
 EndSection
 
 Section "Module"
diff --git a/abs/core-testing/LinHES-config/xconfig.sh b/abs/core-testing/LinHES-config/xconfig.sh
index ef3e836..f718a1f 100755
--- a/abs/core-testing/LinHES-config/xconfig.sh
+++ b/abs/core-testing/LinHES-config/xconfig.sh
@@ -1,4 +1,5 @@
 #!/bin/bash
+NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel unichrome-dri xf86-video-unichrome xf86-video-mga xf86-video-savage xf86-video-trident"
 BASE=""
 . /etc/profile
 NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt"
@@ -179,12 +180,12 @@ function setupX {
                             then
                                 #install 96xx drivers
                                 echo "installing nvidia 96xx drivers"
-                                pacman --noconfirm  -R libgl-dri > /dev/null 2>&1
+                                pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                                 pacman --noconfirm  -S nvidia-96xx nvidia-96xx-utils  > /dev/null 2>&1
                             else
                                 #install latest drivers
                                 echo "installing current nvidia drivers"
-                                pacman --noconfirm  -R libgl-dri > /dev/null 2>&1
+                                pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                                 pacman --noconfirm  -S nvidia nvidia-utils > /dev/null 2>&1
                             fi
                     fi
@@ -198,7 +199,7 @@ function setupX {
                     if [ ! x$TESTMODE = "xtest" ]
                     then
                         pacman --noconfirm  -R nvidia nvidia-utils > /dev/null 2>&1
-                        pacman --noconfirm  -S libgl-dri > /dev/null 2>&1
+                        pacman --noconfirm  -S libgl > /dev/null 2>&1
                     fi
 
                     ;;
@@ -207,7 +208,7 @@ function setupX {
                     if [ !  x$TESTMODE = "xtest" ]
                     then
                             pacman --noconfirm -R nvidia-utils > /dev/null 2>&1
-                            pacman --noconfirm -S libgl-dri > /dev/null 2>&1
+                            pacman --noconfirm -S libgl > /dev/null 2>&1
                     fi
                                 ;;
 
diff --git a/abs/core-testing/aalib/PKGBUILD b/abs/core-testing/aalib/PKGBUILD
index ee23967..0ae5b05 100644
--- a/abs/core-testing/aalib/PKGBUILD
+++ b/abs/core-testing/aalib/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 2990 2008-06-18 01:46:24Z eric $
+# $Id: PKGBUILD 9082 2008-08-17 03:29:36Z allan $
 # Maintainer: arjan <arjan@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 #
 pkgname=aalib
 pkgver=1.4rc5
-pkgrel=5
+pkgrel=6
 pkgdesc="AAlib is a portable ASCII art GFX library"
 arch=('i686' 'x86_64')
 url="http://aa-project.sourceforge.net/aalib/"
@@ -18,7 +18,8 @@ md5sums=('9801095c42bba12edebd1902bcf0a990' '863a96a6689aa7ee073ca448bc2f133d')
 build() {
   cd $startdir/src/$pkgname-1.4.0
   patch -Np0 -i ${startdir}/src/aclocal-fixes.patch || return 1
-  ./configure --prefix=/usr --mandir=/usr/share/man
+  ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
   make || return 1
   make DESTDIR=$startdir/pkg install
+  rm ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/core-testing/acpid/PKGBUILD b/abs/core-testing/acpid/PKGBUILD
index f39bbc1..4fbbdf2 100644
--- a/abs/core-testing/acpid/PKGBUILD
+++ b/abs/core-testing/acpid/PKGBUILD
@@ -1,31 +1,38 @@
+# $Id: PKGBUILD 20369 2008-12-03 02:03:14Z thayer $
+# Contributor: Manolis Tzanidakis
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
 
 pkgname=acpid
-pkgver=1.0.6
-pkgrel=3
-arch=('i686')
-pkgdesc="Utilities for using ACPI power management"
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="A daemon for delivering ACPI power management events"
 url="http://acpid.sourceforge.net"
+license=('GPL2')
+arch=('i686' 'x86_64')
 depends=(glibc)
-source=(http://easynews.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
-	acpid-1.0.4-gcc4.patch
-	acpid
-	anything
-	handler.sh
-	Makefile )
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+    acpid
+    anything
+    handler.sh)
 backup=('etc/acpi/handler.sh' 'etc/acpi/events/anything')
-#options='-D_GNU_SOURCE'
-MAKEFLAGS="-j2"
+md5sums=('1d9c52fe2c0b51f8463f357c2a3d3ddb'
+         '15903690f1bae4b3b0625b369de65521'
+         '2d37b98d6e74bab815604b8b48c6cfd4'
+         '0e8dd13793b1baa79a745f4034888367')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
- # patch -Np1 -i ${startdir}/src/acpid-1.0.4-gcc4.patch || return 1
-  cp ../Makefile .
-  /usr/bin/make  || return 1
-  /bin/install -d -m0755 $startdir/pkg/usr/bin
-  /usr/bin/make INSTPREFIX=$startdir/pkg \
-      MAN8DIR=$startdir/pkg/usr/man/man8 install
-  /bin/install -D -m0755 ../acpid $startdir/pkg/etc/rc.d/acpid
-  /bin/install -d -m0755 $startdir/pkg/etc/acpi/events
-  /bin/install -D -m0644 ../anything $startdir/pkg/etc/acpi/events/anything
-  /bin/install -D -m0755 ../handler.sh $startdir/pkg/etc/acpi/handler.sh
+    cd $srcdir/$pkgname-$pkgver
+    /usr/bin/make || return 1
+    /bin/install -d -m0755 $pkgdir/usr/bin || return 1
+    /usr/bin/make INSTPREFIX=$pkgdir \
+        MAN8DIR=$pkgdir/usr/share/man/man8 install || return 1
+
+    # install our supplementary scripts
+    /bin/install -D -m0755 $srcdir/acpid $pkgdir/etc/rc.d/acpid || return 1
+    /bin/install -D -m0644 $srcdir/anything $pkgdir/etc/acpi/events/anything || return 1
+    /bin/install -D -m0755 $srcdir/handler.sh $pkgdir/etc/acpi/handler.sh || return 1
+
+    # set world readable bit on the acpid binary
+    /bin/chmod 755 $pkgdir/usr/sbin/acpid || return 1
 }
diff --git a/abs/core-testing/acpid/handler.sh b/abs/core-testing/acpid/handler.sh
index b885f77..ad31d1a 100755
--- a/abs/core-testing/acpid/handler.sh
+++ b/abs/core-testing/acpid/handler.sh
@@ -11,59 +11,55 @@ setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
 set $*
 
 case "$1" in
-	button/power)
-		#echo "PowerButton pressed!">/dev/tty5
-		case "$2" in
-			PWRF)	logger "PowerButton pressed: $2"
-      				xsay "Please wait while the system powers off" &
-				 /sbin/halt-runit
-				;;
-			*)    logger "ACPI action undefined: $2" ;;
-		esac
-		;;
-	button/sleep)
-		case "$2" in
-			SLPB) echo -n mem >/sys/power/state ;;
-			*)    logger "ACPI action undefined: $2" ;;
-		esac
-		;;
-	ac_adapter)
-		case "$2" in
-			AC)
-				case "$4" in
-					00000000)
-						echo -n $minspeed >$setspeed
-						#/etc/laptop-mode/laptop-mode start
-					;;
-					00000001)
-						echo -n $maxspeed >$setspeed
-						#/etc/laptop-mode/laptop-mode stop
-					;;
-				esac
-				;;
-			*) logger "ACPI action undefined: $2" ;;
-		esac
-		;;
-	battery)
-		case "$2" in
-			BAT0)
-				case "$4" in
-					00000000)	#echo "offline" >/dev/tty5
-					;;
-					00000001)	#echo "online"  >/dev/tty5
-					;;
-				esac
-				;;
-			CPU0)	
-				;;
-			*) logger "ACPI action undefined: $2" ;;
-		esac
-		;;
-
-	button/lid)
-		#echo "LID switched!">/dev/tty5
-		;;
-	*)
-		logger "ACPI group/action undefined: $1 / $2"
-		;;
+    button/power)
+        #echo "PowerButton pressed!">/dev/tty5
+        case "$2" in
+            PWRF)   logger "PowerButton pressed: $2" ;;
+            *)      logger "ACPI action undefined: $2" ;;
+        esac
+        ;;
+    button/sleep)
+        case "$2" in
+            SLPB)   echo -n mem >/sys/power/state ;;
+            *)      logger "ACPI action undefined: $2" ;;
+        esac
+        ;;
+    ac_adapter)
+        case "$2" in
+            AC)
+                case "$4" in
+                    00000000)
+                        echo -n $minspeed >$setspeed
+                        #/etc/laptop-mode/laptop-mode start
+                    ;;
+                    00000001)
+                        echo -n $maxspeed >$setspeed
+                        #/etc/laptop-mode/laptop-mode stop
+                    ;;
+                esac
+                ;;
+            *)  logger "ACPI action undefined: $2" ;;
+        esac
+        ;;
+    battery)
+        case "$2" in
+            BAT0)
+                case "$4" in
+                    00000000)   #echo "offline" >/dev/tty5
+                    ;;
+                    00000001)   #echo "online"  >/dev/tty5
+                    ;;
+                esac
+                ;;
+            CPU0)	
+                ;;
+            *)  logger "ACPI action undefined: $2" ;;
+        esac
+        ;;
+    button/lid)
+        #echo "LID switched!">/dev/tty5
+        ;;
+    *)
+        logger "ACPI group/action undefined: $1 / $2"
+        ;;
 esac
diff --git a/abs/core-testing/alsa-lib/PKGBUILD b/abs/core-testing/alsa-lib/PKGBUILD
index 785f6b2..b49354a 100644
--- a/abs/core-testing/alsa-lib/PKGBUILD
+++ b/abs/core-testing/alsa-lib/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 18680 2008-11-08 16:21:16Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 
 pkgname=alsa-lib
-pkgver=1.0.16
+pkgver=1.0.18
 pkgrel=1
 pkgdesc="An alternative implementation of Linux sound support"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.alsa-project.org"
 depends=('glibc')
 optdepends=('python')
@@ -13,11 +13,11 @@ makedepends=('python')
 license=('GPL')
 options=(!libtool)
 source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-$pkgver.tar.bz2)
-md5sums=('73b0986758bb762648a5fafc93e287c1')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
+  cd $srcdir/$pkgname-$pkgver
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR=$pkgdir install
 }
+md5sums=('de60df7541fafe8c6a3397e0f105ff0e')
diff --git a/abs/core-testing/alsa-oss/PKGBUILD b/abs/core-testing/alsa-oss/PKGBUILD
index d70a9e9..66f7030 100644
--- a/abs/core-testing/alsa-oss/PKGBUILD
+++ b/abs/core-testing/alsa-oss/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 13736 2008-09-28 09:04:09Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=alsa-oss
-pkgver=1.0.15
+pkgver=1.0.17
 pkgrel=1
 pkgdesc="OSS compatibility library"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://www.alsa-project.org"
 options=(!libtool)
-depends=('glibc' 'alsa-lib>=1.0.15')
+depends=('glibc' 'alsa-lib>=1.0.17a')
 source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2)
 
 build() {
@@ -17,4 +17,4 @@ build() {
   make || return 1
   make DESTDIR=$startdir/pkg install
 }
-md5sums=('49fb5fbae8bf955b248e46ff9c9a2aa1')
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
diff --git a/abs/core-testing/alsa-utils/PKGBUILD b/abs/core-testing/alsa-utils/PKGBUILD
index a14e0ad..caa636c 100644
--- a/abs/core-testing/alsa-utils/PKGBUILD
+++ b/abs/core-testing/alsa-utils/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 18682 2008-11-08 16:46:01Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=alsa-utils
-pkgver=1.0.16
+pkgver=1.0.18
 pkgrel=1
 pkgdesc="An alternative implementation of Linux sound support"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.alsa-project.org"
-depends=('alsa-lib>=1.0.16' 'dialog' 'pciutils' 'ncurses')
+#can not use >=$pkgver due to use of letters in alsa-lib update versioning
+depends=("alsa-lib>1.0.17.999" 'dialog' 'pciutils' 'ncurses')
+makedepends=('xmlto' 'docbook-xsl')
 license=('GPL')
 source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2 \
         alsa alsaconf.patch alsa.conf.d)
 backup=(etc/conf.d/alsa)
-md5sums=('b9f803f45e6988bb27a6bed521a949fc'
-         'cce0969b0203a2bb35540fdf4f7e96ae'
-         '538f82650d08e901efea86c5395520df'
-         '366d370f874a45e67b63ce4a8b048202')
 
 build() {
   cd $startdir/src/$pkgname-${pkgver}
   patch -Np1 -i ../alsaconf.patch || return 1
-  ./configure --prefix=/usr --with-curses=ncursesw
+  ./configure --prefix=/usr
   make || return 1
   make DESTDIR=$startdir/pkg install
   install -D -m755 ../alsa $startdir/pkg/etc/rc.d/alsa
   install -D -m644 ../alsa.conf.d $startdir/pkg/etc/conf.d/alsa
 }
+md5sums=('0a6b26d27cc2adfd591d91d8c155fdb7'
+         '9dff78913b13b10e67c4195e90395ed2'
+         '538f82650d08e901efea86c5395520df'
+         '93089f0d8872078939f76dd2acaebc2b')
diff --git a/abs/core-testing/alsa-utils/alsa b/abs/core-testing/alsa-utils/alsa
index 2581a9a..e1d6f28 100755
--- a/abs/core-testing/alsa-utils/alsa
+++ b/abs/core-testing/alsa-utils/alsa
@@ -7,7 +7,7 @@
 case "$1" in
   start)
     stat_busy "Restoring ALSA Levels"
-    /usr/sbin/alsactl restore
+    /usr/sbin/alsactl $ALSA_ARGS restore
     if [ $? -gt 0 ]; then
       stat_fail
     else
@@ -17,20 +17,28 @@ case "$1" in
 
     POWERSAVE=${POWERSAVE:-0}
     if [ -e /sys/module/snd_ac97_codec/parameters/power_save \
-	 -a $POWERSAVE -ne 0 ]; then
-        echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
-        echo 1 > /dev/dsp
+	  -a $POWERSAVE -ne 0 ]; then
+      echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
+      echo 1 > /dev/dsp
     fi
 
     if [ -e /sys/module/snd_hda_intel/parameters/power_save \
-	 -a $POWERSAVE -ne 0 ]; then
-	echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
-        echo 1 > /dev/dsp
+      -a $POWERSAVE -ne 0 ]; then
+      echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
+      echo 1 > /dev/dsp
     fi
     ;;
   stop)
-    stat_busy "Saving ALSA Levels"
-    /usr/sbin/alsactl store
+    SAVE_VOLUME=${SAVE_VOLUME:-yes}
+    if [ "$SAVE_VOLUME" == "yes" ]; then
+      stat_busy "Saving ALSA Levels"
+      /usr/sbin/alsactl $ALSA_ARGS store
+    else
+      stat_busy "Stopping ALSA"
+    fi
+    if [ "$MUTE_VOLUME" == "yes" ]; then
+      /usr/bin/amixer -q set Master 0 mute
+    fi
     if [ $? -gt 0 ]; then
       stat_fail
     else
@@ -44,5 +52,5 @@ case "$1" in
     $0 start
     ;;
   *)
-    echo "usage: $0 {start|stop|restart}"  
+    echo "usage: $0 {start|stop|restart}"
 esac
diff --git a/abs/core-testing/alsa-utils/alsa.conf.d b/abs/core-testing/alsa-utils/alsa.conf.d
index 1fa3d38..2c4a92e 100644
--- a/abs/core-testing/alsa-utils/alsa.conf.d
+++ b/abs/core-testing/alsa-utils/alsa.conf.d
@@ -1,4 +1,15 @@
+# Arguments for alsactl
+# example: ALSA_ARGS="--file /var/run/alsa-state"
+ALSA_ARGS=""
+
 # Enables powersaving mode for AC97 and hda_intel audio chips.
 # Set to 1 to enable powersaving.
 # Set to 0 to disable powersaving (default).
 POWERSAVE=0
+
+# Whether to save volume levels when stopped ("yes" or "no").
+SAVE_VOLUME="yes"
+
+# Whether to mute the master volume when stopped ("yes" or "no").
+# Useful for bad audio cards which make a noise on system poweroff.
+MUTE_VOLUME="no"
diff --git a/abs/core-testing/aspell/PKGBUILD b/abs/core-testing/aspell/PKGBUILD
index 0b8a590..8d584b9 100644
--- a/abs/core-testing/aspell/PKGBUILD
+++ b/abs/core-testing/aspell/PKGBUILD
@@ -1,24 +1,31 @@
-# $Id: PKGBUILD 521 2008-04-20 13:00:37Z andyrtr $
-# Maintainer: dorphell <dorphell@archlinux.org>
+# $Id: PKGBUILD 19099 2008-11-14 21:50:10Z thayer $
 # Contributor: Jochem Kossen <j.kossen@home.nl>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
 pkgname=aspell
 pkgver=0.60.6
 _pkgmajorver=0.60
-pkgrel=1
-pkgdesc="A Free and Open Source spell checker designed to eventually replace Ispell"
-arch=(i686 x86_64)
+pkgrel=4
+pkgdesc="A spell checker designed to eventually replace Ispell"
+url="http://aspell.net/"
+arch=('i686' 'x86_64')
 license=('LGPL')
-depends=('gcc-libs' 'ncurses')
+depends=('gcc-libs' 'ncurses>=5.6-7')
+optdepends=('perl: to import old dictionaries')
 options=(!libtool)
-source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
 install=aspell.install
-url="http://aspell.net/"
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
 md5sums=('bc80f0198773d5c05086522be67334eb')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd ${srcdir}/${pkgname}-${pkgver}
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  ln -s ${pkgname}-${_pkgmajorver} ${startdir}/pkg/usr/lib/${pkgname}
+  make DESTDIR=${pkgdir} install || return 1
+  ln -s ${pkgname}-${_pkgmajorver} ${pkgdir}/usr/lib/${pkgname} || return 1
+
+  # cleanup info files
+  rm ${pkgdir}/usr/share/info/dir || return 1
+  gzip ${pkgdir}/usr/share/info/* || return 1
 }
diff --git a/abs/core-testing/aspell/aspell.install b/abs/core-testing/aspell/aspell.install
index b635a4a..2747f02 100644
--- a/abs/core-testing/aspell/aspell.install
+++ b/abs/core-testing/aspell/aspell.install
@@ -1,8 +1,23 @@
+infodir=/usr/share/info
+filelist=(aspell.info aspell-dev.info)
+
 post_install() {
-  echo "NOTE: aspell comes with no default dictionary"
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+  echo "==> aspell comes with no default dictionary"
+}
+
+post_upgrade() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
 }
 
-op=$1
-shift
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
 
-[ "$(type -t "$op")" = "function" ] && $op "$@"
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/ati-dri/PKGBUILD b/abs/core-testing/ati-dri/PKGBUILD
new file mode 100644
index 0000000..253f136
--- /dev/null
+++ b/abs/core-testing/ati-dri/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 17170 2008-10-26 11:01:19Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=ati-dri
+pkgver=7.2
+pkgrel=1
+pkgdesc="DRI drivers for ATI/AMD videochips"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('libdrm>=2.3.1' 'libgl>=7.2' 'expat>=2.0.1')
+makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
+conflicts=('xf86-video-ati<6.9.0-6')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2
+       mesa-7.1-link-shared.patch)
+md5sums=('04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
+
+build() {
+  cd "${srcdir}/Mesa-${pkgver}"
+  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=radeon,r200,r300 \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
+  rm -rf "${pkgdir}/usr/include"
+  rm -rf "${pkgdir}/usr/lib/pkgconfig"
+}
diff --git a/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch b/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/ati-dri/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/avahi/ChangeLog b/abs/core-testing/avahi/ChangeLog
index e4d3f7a..e298fb4 100644
--- a/abs/core-testing/avahi/ChangeLog
+++ b/abs/core-testing/avahi/ChangeLog
@@ -1,4 +1,8 @@
 
+2009-01-04  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 0.6.24
+
 2008-07-22  Douglas Soares de Andrade  <douglas@archlinux.org>
 
 	* Updated for i686: 0.6.23
diff --git a/abs/core-testing/avahi/PKGBUILD b/abs/core-testing/avahi/PKGBUILD
index f98180b..e068e17 100644
--- a/abs/core-testing/avahi/PKGBUILD
+++ b/abs/core-testing/avahi/PKGBUILD
@@ -1,26 +1,24 @@
-# $Id: PKGBUILD 6066 2008-07-23 03:45:52Z douglas $
-# Maintainer: Travis Willard <travis@archlinux.org>
+# $Id: PKGBUILD 23159 2009-01-04 04:58:11Z douglas $
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
 
 pkgname=avahi
-pkgver=0.6.23
+pkgver=0.6.24
 pkgrel=1
 pkgdesc="A multicast/unicast DNS-SD framework"
 arch=('i686' 'x86_64')
 url="http://www.avahi.org/"
 license=('LGPL')
-#depends=('dbus>=1.1.20-1' 'libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat')
-depends=('libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat' 'dbus-python')
+depends=('dbus>=1.1.20-1' 'libcap' 'libdaemon>=0.11' 'gdbm' 'glib2' 'expat')
 optdepends=('qt3:Qt3 UI support' 'libglade:Avahi-discover-standalone'
             'nss-mdns:NSS support for mDNS')
-makedepends=('qt3' 'libglade' 'intltool')
-
+makedepends=('mono' 'pygtk' 'gtk-sharp-2' 'dbus-python' 'qt3' 'libglade' 'intltool')
 backup=(etc/avahi/avahi-daemon.conf)
 install=avahi.install
 conflicts=('howl' 'mdnsresponder')
 provides=('howl' 'mdnsresponder')
 replaces=('howl' 'mdnsresponder')
 options=('!libtool')
-source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz)
+source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz gnome-nettool.png)
 
 build() {
   [ -z "${QTDIR}" ] && . /etc/profile.d/qt3.sh
@@ -39,7 +37,10 @@ build() {
     --enable-compat-howl \
     --with-distro=archlinux \
     --with-avahi-priv-access-group=network \
-    --disable-autoipd --disable-glib     --disable-pygtk --disable-mono --disable-xmltoman
+    --enable-autoipd \
+    --with-autoipd-user=avahi \
+    --with-autoipd-group=avahi
+
   make || return 1
   make DESTDIR=${startdir}/pkg install
 
@@ -57,9 +58,7 @@ build() {
   cd ${startdir}/pkg/usr/lib/pkgconfig
   ln -s avahi-compat-howl.pc howl.pc
   mkdir -p ${startdir}/pkg/usr/share/pixmaps
-#  install -m 644 ${startdir}/src/gnome-nettool.png ${startdir}/pkg/usr/share/pixmaps/gnome-nettool.png
+  install -m 644 ${startdir}/src/gnome-nettool.png ${startdir}/pkg/usr/share/pixmaps/gnome-nettool.png
 }
-
-md5sums=('aab1a304851d8145ea5f6a85c10af9e9'
+md5sums=('068c1d220b07037e64caf87d4a7a0504'
          '42c2905307c7a5dc6ac4b75f4c3d65a3')
-
diff --git a/abs/core-testing/avahi/gnome-nettool.png b/abs/core-testing/avahi/gnome-nettool.png
new file mode 100644
index 0000000..227d067
Binary files /dev/null and b/abs/core-testing/avahi/gnome-nettool.png differ
diff --git a/abs/core-testing/dbus-core/PKGBUILD b/abs/core-testing/dbus-core/PKGBUILD
new file mode 100644
index 0000000..7a1bc6e
--- /dev/null
+++ b/abs/core-testing/dbus-core/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 19084 2008-11-14 21:36:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+#
+pkgname=dbus-core
+pkgver=1.2.4
+pkgrel=1
+pkgdesc="Freedesktop.org message bus system"
+url="http://www.freedesktop.org/Software/dbus"
+arch=(i686 x86_64)
+license=('GPL' 'custom')
+depends=('expat>=2.0')
+conflicts=('dbus<1.2.3-2')
+options=(!libtool)
+install=dbus.install
+source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz
+	dbus)
+md5sums=('2e643910a09f44b000a0d76038637999'
+         'f3fd196cc278bd7b45a4ca01fb8f7894')
+
+build() {
+  cd "${srcdir}/dbus-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+  	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+              --with-system-pid-file=/var/run/dbus.pid \
+	      --enable-inotify --disable-dnotify \
+              --disable-verbose-mode --disable-static \
+	      --disable-tests --disable-asserts --without-x || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  rm -f ${pkgdir}/usr/bin/dbus-launch
+  rm -f ${pkgdir}/usr/share/man/man1/dbus-launch.1
+
+  chown 81:81 "${pkgdir}/var/run/dbus" || return 1
+
+  install -m755 -d "${pkgdir}/etc/rc.d" || return 1
+  install -m755 "${srcdir}/dbus" "${pkgdir}/etc/rc.d/" || return 1
+
+  #Fix configuration file
+  sed -i -e 's|<user>81</user>|<user>dbus</user>|' "${pkgdir}/etc/dbus-1/system.conf" || return 1
+
+  #install .keep files so pacman doesn't delete empty dirs
+  touch "${pkgdir}/usr/share/dbus-1/services/.keep" || return 1
+  touch "${pkgdir}/usr/share/dbus-1/system-services/.keep" || return 1
+  touch "${pkgdir}/etc/dbus-1/session.d/.keep" || return 1
+  touch "${pkgdir}/etc/dbus-1/system.d/.keep" || return 1
+
+  rmdir "${pkgdir}/usr/lib/dbus-1.0/dbus-1" || return 1
+
+  install -d -m755 "${pkgdir}/usr/share/licenses/dbus-core"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/dbus-core/" || return 1
+}
diff --git a/abs/core-testing/dbus-core/dbus b/abs/core-testing/dbus-core/dbus
new file mode 100644
index 0000000..cd26db8
--- /dev/null
+++ b/abs/core-testing/dbus-core/dbus
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+    start)
+        stat_busy "Starting D-BUS system messagebus"
+	if [ ! -x /var/run/dbus ] ; then
+	    install -m755 -g 81 -o 81 -d /var/run/dbus
+	fi
+        if [ -x /usr/bin/dbus-uuidgen ] ; then
+            /usr/bin/dbus-uuidgen --ensure
+        fi
+
+        /usr/bin/dbus-daemon --system
+        if [ $? -gt 0 ]; then
+            stat_fail
+        else
+            add_daemon dbus
+            stat_done
+        fi
+        ;;
+    stop)
+        stat_busy "Stopping D-BUS system messagebus"
+	[ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid`
+        if [ $? -gt 0 ]; then
+            stat_fail
+        else
+	    rm -f /var/run/dbus.pid
+            rm_daemon dbus
+            stat_done
+        fi
+        ;;
+    restart)
+        $0 stop
+	sleep 1
+        $0 start
+        ;;
+    reload)
+        stat_busy "Reloading D-BUS configuration"
+        [ -f /var/run/dbus.pid ] && /usr/bin/dbus-send \
+                --system --type=method_call \
+                --dest=org.freedesktop.DBus \
+                / org.freedesktop.DBus.ReloadConfig
+        if [ $? -gt 0 ]; then
+            stat_fail
+        else
+            stat_done
+        fi
+        ;;
+    *)
+        echo "usage: $0 {start|stop|restart|reload}"
+	;;
+esac
+exit 0
diff --git a/abs/core-testing/dbus-core/dbus.install b/abs/core-testing/dbus-core/dbus.install
new file mode 100644
index 0000000..85dd9a7
--- /dev/null
+++ b/abs/core-testing/dbus-core/dbus.install
@@ -0,0 +1,21 @@
+post_install() {
+  getent group dbus >/dev/null || usr/sbin/groupadd -g 81 dbus
+  getent passwd dbus >/dev/null || usr/sbin/useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus
+  usr/bin/passwd -l dbus &>/dev/null
+  dbus-uuidgen --ensure
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install $1
+
+  #Make sure new rc script can shutdown running dbus
+  [ -f var/run/dbus/pid ] && mv var/run/dbus/pid var/run/dbus.pid
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  usr/sbin/userdel dbus &>/dev/null
+  usr/sbin/groupdel dbus &>/dev/null
+}
diff --git a/abs/core-testing/dbus-glib/PKGBUILD b/abs/core-testing/dbus-glib/PKGBUILD
index 4eb8838..c4e5026 100644
--- a/abs/core-testing/dbus-glib/PKGBUILD
+++ b/abs/core-testing/dbus-glib/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 3474 2008-06-22 20:19:25Z jgc $
+# $Id: PKGBUILD 22368 2008-12-26 15:52:52Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=dbus-glib
-pkgver=0.76
+pkgver=0.78
 pkgrel=1
 pkgdesc="GLib bindings for DBUS"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://www.freedesktop.org/wiki/Software/DBusBindings"
-depends=('dbus>=1.2.1' 'glib2>=2.16.3')
+depends=('dbus>=1.2.4' 'glib2>=2.18.3')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('d3b716a7e798faa1c6a867675f00306a')
+md5sums=('d4aa04b9df35b4bd663be38e959941c8')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/dbus-python/PKGBUILD b/abs/core-testing/dbus-python/PKGBUILD
index e3e845f..ae77c04 100644
--- a/abs/core-testing/dbus-python/PKGBUILD
+++ b/abs/core-testing/dbus-python/PKGBUILD
@@ -1,18 +1,17 @@
-# $Id: PKGBUILD 9903 2008-08-20 20:08:55Z jgc $
+# $Id: PKGBUILD 17272 2008-10-27 16:25:58Z douglas $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=dbus-python
 pkgver=0.83.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Python bindings for DBUS"
 arch=(i686 x86_64)
 license=('GPL' 'LGPL')
 url="http://www.freedesktop.org/wiki/Software/DBusBindings"
-depends=('dbus-glib>=0.76' 'python>=2.5')
+depends=('dbus-glib>=0.76' 'python>=2.6')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('562c78876219bf458d79a041af18293d')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
@@ -20,3 +19,4 @@ build() {
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
+md5sums=('562c78876219bf458d79a041af18293d')
diff --git a/abs/core-testing/dbus/30-dbus b/abs/core-testing/dbus/30-dbus
new file mode 100644
index 0000000..603e92d
--- /dev/null
+++ b/abs/core-testing/dbus/30-dbus
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# launches a session dbus instance
+
+dbuslaunch="`which dbus-launch 2>/dev/null`"
+if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ] && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
+  eval `$dbuslaunch --sh-syntax --exit-with-session`
+fi
+
diff --git a/abs/core-testing/dbus/PKGBUILD b/abs/core-testing/dbus/PKGBUILD
index dc747bc..3276f82 100644
--- a/abs/core-testing/dbus/PKGBUILD
+++ b/abs/core-testing/dbus/PKGBUILD
@@ -1,48 +1,38 @@
-# $Id: PKGBUILD 9899 2008-08-20 20:01:17Z jgc $
+# $Id: PKGBUILD 19087 2008-11-14 21:39:51Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Link Dupont <link@subpop.net>
 #
 pkgname=dbus
-pkgver=1.2.3
+pkgver=1.2.4
 pkgrel=1
 pkgdesc="Freedesktop.org message bus system"
 url="http://www.freedesktop.org/Software/dbus"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
-depends=('expat>=2.0' 'libx11' 'libsm')
-options=(!libtool)
-install=dbus.install
+depends=("dbus-core>=${pkgver}" 'libx11' 'libsm')
 source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
-	dbus)
-md5sums=('f71641385768e99361bd298568207cee'
-         'f3fd196cc278bd7b45a4ca01fb8f7894')
+	30-dbus)
+md5sums=('2e643910a09f44b000a0d76038637999'
+         'd14e59575f04e55d21a04907b6fd9f3c')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
   	      --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
               --with-system-pid-file=/var/run/dbus.pid \
               --disable-verbose-mode --disable-static \
+	      --enable-inotify --disable-dnotify \
 	      --disable-tests --disable-asserts || return 1
-  make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  chown 81:81 ${startdir}/pkg/var/run/dbus || return 1
+  cd tools || return 1
+  make dbus-launch || return 1
+  install -m755 -d ${pkgdir}/usr/bin
+  install -m755 -d ${pkgdir}/usr/share/man/man1
+  install -m755 dbus-launch ${pkgdir}/usr/bin/ || return 1
+  install -m644 dbus-launch.1 ${pkgdir}/usr/share/man/man1/ || return 1
 
-  install -m755 -d  ${startdir}/pkg/etc/rc.d || return 1
-  install -m 755 ${startdir}/dbus ${startdir}/pkg/etc/rc.d/ || return 1
-
-  #Fix configuration file
-  sed -i -e 's|<user>81</user>|<user>dbus</user>|' ${startdir}/pkg/etc/dbus-1/system.conf || return 1
-
-  #install .keep files so pacman doesn't delete empty dirs
-  touch ${startdir}/pkg/usr/share/dbus-1/services/.keep || return 1
-  touch ${startdir}/pkg/usr/share/dbus-1/system-services/.keep || return 1
-  touch ${startdir}/pkg/etc/dbus-1/session.d/.keep || return 1
-  touch ${startdir}/pkg/etc/dbus-1/system.d/.keep || return 1
-
-  rmdir ${startdir}/pkg/usr/lib/dbus-1.0/dbus-1 || return 1
+  install -m755 -d ${pkgdir}/etc/X11/xinit/xinitrc.d
+  install -m755 ${srcdir}/30-dbus ${pkgdir}/etc/X11/xinit/xinitrc.d/ || return 1
 
   install -d -m755 ${startdir}/pkg/usr/share/licenses/dbus
-  install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \
-    ${startdir}/pkg/usr/share/licenses/dbus/ || return 1
+  install -m644 ../COPYING ${pkgdir}/usr/share/licenses/dbus/ || return 1
 }
diff --git a/abs/core-testing/dvb-firmware/PKGBUILD b/abs/core-testing/dvb-firmware/PKGBUILD
index 6ad5707..0a4fd33 100644
--- a/abs/core-testing/dvb-firmware/PKGBUILD
+++ b/abs/core-testing/dvb-firmware/PKGBUILD
@@ -3,13 +3,13 @@
 
 pkgname=dvb-firmware
 pkgver=1
-pkgrel=1
+pkgrel=2
 pkgdesc="Firmware for DVB cards"
 arch=('i586' 'i686' 'x86_64')
 license=('GPL2')
 url="http://linuxtv.org/"
 source=(ftp://ftp.knoppmyth.net/R6/sources/dvb-firmware.tar.bz2)
-md5sums=('d58a3f2b556cf32ac5ab68cd86fcf6ec')
+md5sums=('adc049deeeffc6ae8f57561396a73cb9')
 
 build() {
   cd $startdir/src/
diff --git a/abs/core-testing/fam/PKGBUILD b/abs/core-testing/fam/PKGBUILD
new file mode 100644
index 0000000..e7f5e41
--- /dev/null
+++ b/abs/core-testing/fam/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 15741 2008-10-18 01:59:29Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+pkgname=fam
+pkgver=2.7.0
+pkgrel=11
+pkgdesc="File Alteration Monitor - used by KDE, GNOME and others"
+arch=('i686' 'x86_64')
+license=('LGPL' 'GPL')
+depends=('portmap')
+url="http://oss.sgi.com/projects/fam/"
+backup=(etc/fam/fam.conf)
+options=('!makeflags') # Don't !libtool
+source=(ftp://oss.sgi.com/projects/fam/download/stable/${pkgname}-${pkgver}.tar.gz
+	fam-2.7.0-dnotify.patch
+	fam-2.7.0-largefiles.patch
+	fam-2.7.0-noc++.patch
+	fam-2.7.0-gcc43.patch
+	include_fam_h.patch
+	fam)
+md5sums=('1bf3ae6c0c58d3201afc97c6a4834e39'
+         '073d1763318344635ea316293390205c'
+         '47b41e0b0498793af004696a096d7da1'
+         '0274cd113d3dcb015653b5606c7714ac'
+         '13c14778038aa9601a27498448e855e0'
+         '2638b8ffacb9f03b6e438e08ea7b290a'
+         '45b648907ba1c7edec17fb544f1f4a13')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -Np1 -i ${srcdir}/fam-2.7.0-dnotify.patch || return 1
+  patch -Np1 -i ${srcdir}/fam-2.7.0-largefiles.patch || return 1
+  patch -Np0 -i ${srcdir}/include_fam_h.patch || return 1
+  patch -Np1 -i ${srcdir}/fam-2.7.0-noc++.patch || return 1
+  patch -Np1 -i ${srcdir}/fam-2.7.0-gcc43.patch || return 1
+
+  chmod 755 configure || return 1
+
+  autoheader || return 1
+  aclocal || return 1
+  automake -a -c || return 1
+  autoconf || return 1
+  libtoolize --copy --force || return 1
+
+  ./configure --prefix=/usr --sysconfdir=/etc/fam
+  make || return 1
+  make DESTDIR=${pkgdir} install
+  install -D -m755 ../fam ${pkgdir}/etc/rc.d/fam
+}
diff --git a/abs/core-testing/fam/fam b/abs/core-testing/fam/fam
new file mode 100755
index 0000000..3acceff
--- /dev/null
+++ b/abs/core-testing/fam/fam
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/famd`
+case "$1" in
+  start)
+    #Check for running portmap, start when not running
+    ck_daemon portmap && /etc/rc.d/portmap start
+    stat_busy "Starting File Alteration Monitor"
+    if [ ! -f /var/run/daemons/portmap ]; then
+      stat_fail
+      echo "ERROR: PORTMAP is not running"
+      exit 1
+    fi
+    if [ -z "$PID" ]; then
+       /usr/sbin/famd -T 0 -c /etc/fam/fam.conf
+    fi
+    if [ ! -z "$PID" -o $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon fam
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping File Alteration Monitor"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon fam
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
diff --git a/abs/core-testing/fam/fam-2.7.0-dnotify.patch b/abs/core-testing/fam/fam-2.7.0-dnotify.patch
new file mode 100644
index 0000000..1d8910e
--- /dev/null
+++ b/abs/core-testing/fam/fam-2.7.0-dnotify.patch
@@ -0,0 +1,975 @@
+--- fam-2.7.0/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,582 @@
++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved.
++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved.
++//  
++//  This program is free software; you can redistribute it and/or modify it
++//  under the terms of version 2 of the GNU General Public License as
++//  published by the Free Software Foundation.
++//
++//  This program is distributed in the hope that it would be useful, but
++//  WITHOUT ANY WARRANTY; without even the implied warranty of
++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any
++//  license provided herein, whether implied or otherwise, is limited to
++//  this program in accordance with the express provisions of the GNU
++//  General Public License.  Patent licenses, if any, provided herein do not
++//  apply to combinations of this program with other product or programs, or
++//  any other product whatsoever.  This program is distributed without any
++//  warranty that the program is delivered free of the rightful claim of any
++//  third person by way of infringement or the like.  See the GNU General
++//  Public License for more details.
++//
++//  You should have received a copy of the GNU General Public License along
++//  with this program; if not, write the Free Software Foundation, Inc., 59
++//  Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#define _GNU_SOURCE  
++#include <fcntl.h>
++
++#include <string.h>
++#include <signal.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <libgen.h>
++
++#include "DNotify.h"
++
++#include "Interest.h"
++#include "Log.h"
++#include "Scheduler.h"
++#include <memory>
++
++
++int DNotify::pipe_write_fd = -2;
++int DNotify::pipe_read_fd = -2;
++volatile sig_atomic_t DNotify::queue_overflowed = 0;
++volatile sig_atomic_t DNotify::queue_changed = 0;
++int DNotify::change_queue[QUEUESIZE];
++volatile int DNotify::queue_head = 0; // Only modified by read handler
++volatile int DNotify::queue_tail = 0; // Only modified by signal handler
++DNotify::EventHandler DNotify::ehandler;
++
++DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE];
++DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE];
++
++struct DNotify::FileWatch
++{
++    DirWatch *dir_watch;
++    dev_t file_dev;
++    ino_t file_ino;
++    FileWatch *next; // The DirWatch.watches list
++    FileWatch *hash_link;
++};
++
++struct DNotify::DirWatch
++{
++    int fd;
++    dev_t dir_dev;
++    ino_t dir_ino;
++    
++    DirWatch *hash_link;
++    FileWatch *watches;
++};
++
++struct DNotify::ChangeEventData
++{
++    dev_t file_dev;
++    ino_t file_ino;
++};    
++
++DNotify::DNotify(EventHandler h)
++{
++    assert(ehandler == NULL);
++    ehandler = h;
++}
++
++DNotify::~DNotify()
++{
++    if (pipe_read_fd >= 0)
++    {
++	//  Tell the scheduler.
++
++	(void) Scheduler::remove_read_handler(pipe_read_fd);
++
++	//  Close the pipe.
++
++	if (close(pipe_read_fd) < 0)
++	    Log::perror("can't pipe read end");
++	else
++	    Log::debug("closed pipe read end");
++	
++	if (close(pipe_write_fd) < 0)
++	    Log::perror("can't pipe write end");
++	else
++	    Log::debug("closed pipe write end");
++	pipe_read_fd = -1;
++    }
++    ehandler = NULL;
++}
++
++void
++DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data)
++{
++  char c = 'x';
++
++  {
++    char *str = "*************** overflow sigqueue ***********************\n";
++    write (STDERR_FILENO, str, strlen(str));
++  }
++
++  if (!queue_overflowed)
++  {
++      queue_overflowed = 1;
++      // Trigger the read handler
++      write(pipe_write_fd, &c, 1);
++  }
++}
++
++void
++DNotify::signal_handler(int sig, siginfo_t *si, void *data)
++{
++  int left;
++  char c = 'x';
++
++  if (queue_head <= queue_tail)
++    left = (QUEUESIZE + queue_head) - queue_tail;
++  else 
++    left = queue_head - queue_tail;
++  
++  // Must leave at least one item unused to see difference
++  // Betweeen empty and full
++  if (left <= 1)
++  {
++      queue_overflowed = 1;
++      {
++	char *str = "*************** overflow famqueue ****************\n";
++	write (STDERR_FILENO, str, strlen(str));
++      }
++  }
++  else
++  {
++      change_queue[queue_tail] = si->si_fd;
++      queue_tail = (queue_tail + 1) % QUEUESIZE;
++  }
++  
++  if (!queue_changed)
++  {
++      queue_changed = 1;
++      // Trigger the read handler
++      write(pipe_write_fd, &c, 1);
++  }
++}
++
++bool
++DNotify::is_active()
++{
++    if (pipe_read_fd == -2)
++    {
++        int filedes[2];
++	int res;
++	
++	res = pipe (filedes);
++	if (res >= 0)
++	{   Log::debug("opened pipe");
++   	    pipe_read_fd = filedes[0];
++   	    pipe_write_fd = filedes[1];
++
++	    // Setup signal handler:
++	    struct sigaction act;
++	    
++	    act.sa_sigaction = signal_handler;
++	    sigemptyset(&act.sa_mask);
++	    act.sa_flags = SA_SIGINFO;
++	    sigaction(SIGRTMIN, &act, NULL);
++
++	    // When the RT queue overflows we get a SIGIO
++	    act.sa_sigaction = overflow_signal_handler;
++	    sigemptyset(&act.sa_mask);
++	    sigaction(SIGIO, &act, NULL);
++
++	    (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL);
++	}
++    }
++    return pipe_read_fd >= 0;
++}
++
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (int fd)
++{
++  DirWatch **p;
++  DirWatch *w;
++
++  p = dir_hashchain (fd);
++
++  while (*p)
++    {
++      w = *p;
++
++      if (w->fd == fd)
++	return w;
++
++      p = &w->hash_link;
++    }
++  
++  return *p;
++}
++
++// This colud be made faster by using another hash table.
++// But it's not that bad, since it is only used by express/revoke
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino)
++{
++  DirWatch *p;
++  int i;
++
++  for (i=0;i<DIR_HASHSIZE;i++)
++    {
++      p = dir_hash[i];
++      
++      while (p)
++	{
++	  if (p->dir_dev == dir_dev && p->dir_ino == dir_ino)
++	    return p;
++	  
++	  p = p->hash_link;
++	}
++    }
++  
++  return NULL;
++}
++
++DNotify::FileWatch *
++DNotify::lookup_filewatch (dev_t dev, ino_t ino)
++{
++  FileWatch **p;
++  FileWatch *w;
++
++  p = file_hashchain (dev, ino);
++
++  while (*p)
++    {
++      w = *p;
++
++      if (w->file_dev == dev && w->file_ino == ino)
++	return w;
++
++      p = &w->hash_link;
++    }
++  
++  return *p;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_dirwatch(DirWatch *w)
++{
++  DirWatch **p;
++  p = dir_hashchain (w->fd);
++  w->hash_link = *p;
++  *p = w;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_filewatch(FileWatch *w)
++{
++  FileWatch **p;
++  p = file_hashchain (w->file_dev, w->file_ino);
++  w->hash_link = *p;
++  *p = w;
++}
++
++void
++DNotify::unhash_dirwatch(DirWatch *w)
++{
++  DirWatch **p;
++  
++  p = dir_hashchain (w->fd);
++  
++  while (*p)
++    {
++      if (*p == w)
++	{
++	  *p = w->hash_link;
++	  break;
++	}
++      p = &(*p)->hash_link;
++    }
++  w->hash_link = NULL;
++}
++
++void
++DNotify::unhash_filewatch(FileWatch *w)
++{
++  FileWatch **p;
++  
++  p = file_hashchain (w->file_dev, w->file_ino);
++  
++  while (*p)
++    {
++      if (*p == w)
++	{
++	  *p = w->hash_link;
++	  break;
++	}
++      p = &(*p)->hash_link;
++    }
++  w->hash_link = NULL;
++}
++
++DNotify::Status
++DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino)
++{
++  struct stat stat;
++  dev_t dir_dev;
++  ino_t dir_ino;
++  DirWatch *dwatch;
++  FileWatch *fw;
++    
++  if (lstat (notify_dir, &stat) == -1)
++      return BAD;
++  
++  dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino);
++  if (!dwatch)
++    {
++      Log::debug ("New DirWatch for %s (%x %x)\n",
++		  notify_dir, (int)stat.st_dev, (int)stat.st_ino);
++      dwatch = new DirWatch;
++      dwatch->watches = NULL;
++      dwatch->hash_link = NULL;
++      dwatch->dir_dev = stat.st_dev;
++      dwatch->dir_ino = stat.st_ino;
++      
++      dwatch->fd = open(notify_dir, O_RDONLY);
++      fcntl (dwatch->fd, F_SETSIG, SIGRTMIN);
++      if (fcntl (dwatch->fd, F_NOTIFY,
++                 (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB) 
++		  | DN_MULTISHOT) == -1) {
++	      return BAD;
++      }
++      hash_dirwatch (dwatch);
++    }
++
++  fw = lookup_filewatch (file_dev, file_ino);
++  if (fw && fw->dir_watch == dwatch)
++	return OK;
++  
++  // No old FileWatch, need to add one:
++  Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino);
++  fw = new FileWatch;
++  fw->next = dwatch->watches;
++  dwatch->watches = fw;
++  fw->file_dev = file_dev;
++  fw->file_ino = file_ino;
++  fw->dir_watch = dwatch;
++  hash_filewatch(fw);
++  return OK;
++}
++
++char *
++dirname_dup (const char *name)
++{
++  char *copy = strdup(name);
++  char *res = dirname(copy);
++  res = strdup(res);
++  free (copy);
++  return res;
++}
++
++DNotify::Status
++DNotify::express(const char *name, struct stat *status)
++{
++    struct stat stat;
++    char *notify_dir;
++    int res;
++    Status s;
++    dev_t dev;
++    ino_t ino;
++
++    Log::debug("express() name: %s\n", name);
++
++    if (!is_active())
++	return BAD;
++
++    if (::lstat (name, &stat) == -1)
++      return BAD;
++
++    dev = stat.st_dev;
++    ino = stat.st_ino;
++    
++    if ((stat.st_mode & S_IFMT) != S_IFDIR)
++	notify_dir = dirname_dup (name);
++    else
++	notify_dir = (char *)name;
++
++    s = watch_dir (notify_dir, dev, ino);
++    if (notify_dir != name)
++        free (notify_dir);
++    if (s)
++      return s;
++
++    // Check for a race condition; if someone removed or changed the
++    // file at the same time that we are expressing interest in it,
++    // revoke the interest so we don't get notifications about changes
++    // to a recycled inode that we don't otherwise care about.
++    //
++    struct stat st;
++    if (status == NULL) {
++	status = &st;
++    }
++    if (::lstat(name, status) == -1) {
++	Log::perror("stat on \"%s\" failed", name);
++	revoke(name, stat.st_dev, stat.st_ino);
++	return BAD;
++    }
++    if (status->st_dev != stat.st_dev
++	|| status->st_ino != stat.st_ino) {
++	Log::error("File \"%s\" changed between express and stat",
++		   name);
++	revoke(name, stat.st_dev, stat.st_ino);
++	return BAD;
++    }	
++
++    Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name,
++	       major(status->st_dev), minor(status->st_dev),
++	       status->st_ino);
++    return OK;
++}
++
++DNotify::Status
++DNotify::revoke(const char *name, dev_t dev, ino_t ino)
++{
++    FileWatch *fwatch;
++    DirWatch *dwatch;
++    
++    Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino);
++
++    if (!is_active())
++	return BAD;
++
++    // Lookup FileWatch by dev:ino, and its DirWatch.
++    fwatch = lookup_filewatch (dev, ino);
++    if (fwatch == NULL)
++	return BAD;
++    
++    dwatch = fwatch->dir_watch;
++    
++    // delete FileWatch, if last FileWatch: close fd, delete DirWatch
++    Log::debug ("Destroying FileWatch for (%x %x)\n",
++		(int)fwatch->file_dev, (int)fwatch->file_ino);
++    FileWatch **p;
++    for (p=&dwatch->watches; *p; p=&(*p)->next)
++    {
++      if (*p == fwatch)
++	{
++	  *p = (*p)->next;
++	  break;
++	}
++    }
++    unhash_filewatch(fwatch);
++    delete fwatch;
++    if (dwatch->watches == NULL)
++      {
++	Log::debug ("Destroying DirWatch for (%x %x)\n",
++		    (int)dwatch->dir_dev, (int)dwatch->dir_ino);
++	close(dwatch->fd);
++	unhash_dirwatch(dwatch);
++	delete dwatch;
++      }
++  
++    return OK;
++}
++
++
++void
++DNotify::all_watches_changed(void)
++{
++  int i;
++  FileWatch *fw;
++
++  for (i=0; i<FILE_HASHSIZE; i++)
++  {
++      fw = file_hash[i];
++      while (fw)
++      {
++	  (*ehandler)(fw->file_dev, fw->file_ino, CHANGE);
++
++	  fw = fw->hash_link;
++      }
++  }
++}
++
++
++void
++DNotify::read_handler(int fd, void *)
++{
++    static char readbuf[5000];
++    DirWatch *dw;
++    FileWatch *fw;
++    int snap_queue_tail;
++    int last_fd;
++
++    int rc = read(fd, readbuf, sizeof readbuf);
++    queue_changed = 0;
++    if (rc < 0)
++        Log::perror("pipe read");
++    else if (queue_overflowed)
++    {
++	  // There is a *slight* race condition here. Between reading
++	  // the queue_overflow flag and resetting it. But it doesn't
++	  // matter, since I'm gonna handle the overflow after reseting
++	  // anyway.
++	  queue_overflowed = false;
++
++	  // We're soon gonna check all watches anyway, so
++	  // get rid of the current queue
++	  queue_head = queue_tail;
++	  
++	  all_watches_changed ();
++    }
++    else
++    {
++	// Don't read events that happen later than
++	// the initial read. (Otherwise skipping fd's
++	// might miss some changes).
++	snap_queue_tail = queue_tail;
++	last_fd = -1;
++	while (queue_head != snap_queue_tail)
++	{
++	    fd = change_queue[queue_head];
++	    queue_head = (queue_head + 1) % QUEUESIZE;
++
++	    // Skip multiple changes to the same fd
++	    if (fd != last_fd)
++	    {
++		dw = lookup_dirwatch (fd);
++		if (dw)
++		{
++		    int n_watches, i;
++		    ChangeEventData *data;
++		    
++		    Log::debug("dnotify said dev %d/%d, ino %ld changed",
++			       major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino);
++		    
++		    n_watches = 0;
++		    for (fw=dw->watches; fw; fw=fw->next)
++			n_watches++;
++		    
++		    data = new ChangeEventData[n_watches];
++
++		    i = 0;
++		    for (fw=dw->watches; fw; fw=fw->next)
++		    {
++			data[i].file_dev = fw->file_dev;
++			data[i].file_ino = fw->file_ino;
++			i++;
++		    }
++
++		    for (i = 0; i < n_watches; i++)
++		    {
++			(*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE);
++		    }
++		    
++		    delete[] data;
++		}
++	    }
++	    last_fd = fd;
++	}
++    }
++}
++
+--- fam-2.7.0/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,98 @@
++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved.
++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved.
++//
++//  This program is free software; you can redistribute it and/or modify it
++//  under the terms of version 2 of the GNU General Public License as
++//  published by the Free Software Foundation.
++//
++//  This program is distributed in the hope that it would be useful, but
++//  WITHOUT ANY WARRANTY; without even the implied warranty of
++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any
++//  license provided herein, whether implied or otherwise, is limited to
++//  this program in accordance with the express provisions of the GNU
++//  General Public License.  Patent licenses, if any, provided herein do not
++//  apply to combinations of this program with other product or programs, or
++//  any other product whatsoever.  This program is distributed without any
++//  warranty that the program is delivered free of the rightful claim of any
++//  third person by way of infringement or the like.  See the GNU General
++//  Public License for more details.
++//
++//  You should have received a copy of the GNU General Public License along
++//  with this program; if not, write the Free Software Foundation, Inc., 59
++//  Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef DNotify_included
++#define DNotify_included
++
++#include "config.h"
++#include "Monitor.h"
++#include <signal.h>
++
++//  DNotify is an object encapsulating the dnotify linux fcntl.
++//  It "emulates" the IMon interface.
++//  There can only be one instantiation of the DNotify object.
++//
++//  The user of this object uses express() and revoke() to
++//  express/revoke interest in a file.  There is also
++//  a callback, the EventHandler.  When an dnotify event comes in,
++//  the EventHandler is called.
++//
++//  The user of the DNotify object is the Interest class.
++
++class DNotify : public Monitor {
++public:
++    DNotify(EventHandler h);
++    ~DNotify();
++
++    static bool is_active();
++
++    virtual Status express(const char *name, struct stat *stat_return);
++    virtual Status revoke(const char *name, dev_t dev, ino_t ino);
++
++private:
++    struct FileWatch;
++    struct DirWatch;
++    struct ChangeEventData;
++  
++    //  Class Variables
++    enum { QUEUESIZE = 1024 };
++    static int pipe_write_fd;
++    static int pipe_read_fd;
++    static int change_queue[QUEUESIZE];
++    static volatile sig_atomic_t queue_overflowed;
++    static volatile sig_atomic_t queue_changed;
++    static volatile int queue_head; // Only modified by read handler
++    static volatile int queue_tail; // Only modified by signal handler
++    static EventHandler ehandler;
++    static void overflow_signal_handler(int sig, siginfo_t *si, void *data);
++    static void signal_handler(int sig, siginfo_t *si, void *data);
++    static void read_handler(int fd, void *closure);
++ 
++    enum { DIR_HASHSIZE = 367 };
++    static DirWatch *dir_hash[DIR_HASHSIZE];
++    enum { FILE_HASHSIZE = 823 };
++    static FileWatch *file_hash[FILE_HASHSIZE];
++
++    static DirWatch **dir_hashchain(int fd)
++			  { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; }
++    static FileWatch **file_hashchain(dev_t d, ino_t i)
++			  { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; }
++
++    static DirWatch *lookup_dirwatch (int fd);
++    static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino);
++    static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino);
++    static void hash_dirwatch(DirWatch *w);
++    static void hash_filewatch(FileWatch *w);
++    static void unhash_dirwatch(DirWatch *w);
++    static void unhash_filewatch(FileWatch *w);
++    static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino);
++
++    static void all_watches_changed(void);
++    
++    DNotify(const DNotify&);			// Do not copy
++    DNotify & operator = (const DNotify&);	//  or assign.
++};
++
++#endif /* !IMon_included */
++
++
+--- fam-2.7.0/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100
+@@ -42,12 +42,21 @@
+ #include "Event.h"
+ #include "FileSystem.h"
+ #include "IMon.h"
++#include "DNotify.h"
+ #include "Log.h"
+ #include "Pollster.h"
+ #include "timeval.h"
+ 
+ Interest *Interest::hashtable[];
+-IMon      Interest::imon(imon_handler);
++
++#ifdef USE_DNOTIFY 
++static DNotify dnotify(Interest::monitor_handler);
++Monitor * Interest::monitor = &dnotify;
++#else
++static IMon imon(Interest::monitor_handler);
++Monitor * Interest::monitor = &imon;
++#endif
++
+ bool      Interest::xtab_verification = true;
+ 
+ Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev)
+@@ -60,10 +69,10 @@
+       mypath_exported_to_host(ev == NO_VERIFY_EXPORTED)
+ {
+     memset(&old_stat, 0, sizeof(old_stat)); 
+-    IMon::Status s = IMon::BAD;
+ 
+-    s = imon.express(name, &old_stat);
+-    if (s != IMon::OK)
++    Monitor::Status s = Monitor::BAD;
++    s = monitor->express(name, &old_stat);
++    if (s != Monitor::OK)
+     {   int rc = lstat(name, &old_stat);
+ 	if (rc < 0)
+ 	{   Log::info("can't lstat %s", name);
+@@ -100,7 +109,7 @@
+     }
+ #endif
+ 
+-    if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK);
++    if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK);
+ }
+ 
+ Interest::~Interest()
+@@ -128,7 +137,7 @@
+ 		pp = &p->hashlink;	// move to next element
+ 	    }
+ 	if (!found_same)
+-	    (void) imon.revoke(name(), dev, ino);
++	  (void) monitor->revoke(name(), dev, ino);
+     }
+ }
+ 
+@@ -147,7 +156,7 @@
+ 
+         // Express interest.
+         IMon::Status s = IMon::BAD;
+-	s = imon.express(name(), NULL);
++	s = monitor->express(name(), NULL);
+         if (s != IMon::OK) {
+             return true;
+         }
+@@ -248,23 +257,23 @@
+ }
+ 
+ void
+-Interest::imon_handler(dev_t device, ino_t inumber, int event)
++Interest::monitor_handler(dev_t device, ino_t inumber, int event)
+ {
+     assert(device || inumber);
+ 
+     for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next)
+     {	next = p->hashlink;
+ 	if (p->ino == inumber && p->dev == device)
+-	{   if (event == IMon::EXEC)
++	  {   if (event == Monitor::EXEC)
+ 	    {   p->cur_exec_state = EXECUTING;
+ 		(void) p->report_exec_state();
+ 	    }
+-	    else if (event == IMon::EXIT)
++	    else if (event == Monitor::EXIT)
+ 	    {   p->cur_exec_state = NOT_EXECUTING;
+ 		(void) p->report_exec_state();
+ 	    }
+ 	    else
+-	    {   assert(event == IMon::CHANGE);
++	    {   assert(event == Monitor::CHANGE);
+ 		p->scan();
+ 	    }
+ 	}
+--- fam-2.7.0/config.h.in	2003-01-20 01:40:15.000000000 +0100
++++ fam-2.7.0.dnotify/config.h.in	2004-01-30 13:50:33.000000000 +0100
+@@ -180,3 +180,6 @@
+ 
+ /* Define to `int' if <sys/types.h> doesn't define. */
+ #undef uid_t
++
++/* Define to 1 if you have F_NOTIFY fcntl */
++#undef USE_DNOTIFY
+--- fam-2.7.0/configure.ac	2003-11-26 20:47:59.000000000 +0100
++++ fam-2.7.0.dnotify/configure.ac	2004-01-30 13:50:33.000000000 +0100
+@@ -34,7 +34,26 @@
+ AC_HEADER_DIRENT
+ AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h])
+ 
+-if test "$have_sys_imon_h"; then
++# Test for the linux dnotify fcntl
++AC_MSG_CHECKING([for dnotify fcntl support])
++AC_TRY_COMPILE([
++#define _GNU_SOURCE  
++#include <fcntl.h>
++#include <unistd.h>
++],
++[ int fd = 1;
++  fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)
++                       |DN_MULTISHOT);
++], have_dnotify=yes, have_dnotify=no)
++
++use_dnotify=false
++AC_MSG_RESULT($have_dnotify)
++
++if test "$have_dnotify"; then
++        MONITOR_FUNCS=IMonNone
++        AC_DEFINE([USE_DNOTIFY], [], [Use dnotify])
++	use_dnotify=true
++elif test "$have_sys_imon_h"; then
+ 	MONITOR_FUNCS=IMonIRIX
+ elif test "$have_linux_imon_h"; then
+ 	MONITOR_FUNCS=IMonLinux
+@@ -42,6 +62,7 @@
+ 	MONITOR_FUNCS=IMonNone
+ fi
+ AC_SUBST(MONITOR_FUNCS)
++AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify)
+ 
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_HEADER_STDBOOL
+--- fam-2.7.0/src/IMon.h	2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/IMon.h	2004-01-30 00:00:00.000000000 +0200
+@@ -24,10 +24,7 @@
+ #define IMon_included
+ 
+ #include "config.h"
+-#include <sys/stat.h>
+-#include <sys/types.h>
+-
+-#include "Boolean.h"
++#include "Monitor.h"
+ 
+ struct stat;
+ 
+@@ -41,25 +38,18 @@
+ //
+ //  The user of the IMon object is the Interest class.
+ 
+-class IMon {
++class IMon : public Monitor {
+ 
+ public:
+-
+-    enum Status { OK = 0, BAD = -1 };
+-    enum Event { EXEC, EXIT, CHANGE };
+-
+-    typedef void (*EventHandler)(dev_t, ino_t, int event);
+-
+     IMon(EventHandler h);
+     ~IMon();
+ 
+     static bool is_active();
+ 
+-    Status express(const char *name, struct stat *stat_return);
+-    Status revoke(const char *name, dev_t dev, ino_t ino);
++    virtual Status express(const char *name, struct stat *stat_return);
++    virtual Status revoke(const char *name, dev_t dev, ino_t ino);
+ 
+ private:
+-
+     //  Class Variables
+ 
+     static int imonfd;
+--- fam-2.7.0/src/Interest.h	2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Interest.h	2004-01-30 00:00:00.000000000 +0200
+@@ -32,7 +32,7 @@
+ 
+ class Event;
+ class FileSystem;
+-class IMon;
++class Monitor;
+ struct stat;
+ 
+ //  Interest -- abstract base class for filesystem entities of interest.
+@@ -74,7 +74,7 @@
+ 
+     //  Public Class Method
+ 
+-    static void imon_handler(dev_t, ino_t, int event);
++    static void monitor_handler(dev_t, ino_t, int event);
+ 
+     static void enable_xtab_verification(bool enable);
+ 
+@@ -121,7 +121,7 @@
+ 
+     //  Class Variables
+ 
+-    static IMon imon;
++    static Monitor *monitor;
+     static Interest *hashtable[HASHSIZE];
+     static bool xtab_verification;
+ 
+--- fam-2.7.0/src/Makefile.am	2003-01-19 13:00:17.000000000 +0100
++++ fam-2.7.0.dnotify/src/Makefile.am	2004-01-30 13:50:38.000000000 +0100
+@@ -71,7 +71,11 @@
+   main.c++ \
+   timeval.c++ \
+   timeval.h \
+-  @MONITOR_FUNCS@.c++
++  Monitor.h \
++  DNotify.h \
++  DNotify.c++ \
++  @MONITOR_FUNCS@.c++ 
+ 
+-EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++
++EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \
++  DNotify.h Monitor.h
+ 
+--- fam-2.7.0/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200
+@@ -0,0 +1,57 @@
++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved.
++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved.
++//  
++//  This program is free software; you can redistribute it and/or modify it
++//  under the terms of version 2 of the GNU General Public License as
++//  published by the Free Software Foundation.
++//
++//  This program is distributed in the hope that it would be useful, but
++//  WITHOUT ANY WARRANTY; without even the implied warranty of
++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any
++//  license provided herein, whether implied or otherwise, is limited to
++//  this program in accordance with the express provisions of the GNU
++//  General Public License.  Patent licenses, if any, provided herein do not
++//  apply to combinations of this program with other product or programs, or
++//  any other product whatsoever.  This program is distributed without any
++//  warranty that the program is delivered free of the rightful claim of any
++//  third person by way of infringement or the like.  See the GNU General
++//  Public License for more details.
++//
++//  You should have received a copy of the GNU General Public License along
++//  with this program; if not, write the Free Software Foundation, Inc., 59
++//  Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef Monitor_included
++#define Monitor_included
++
++#include "config.h"
++#include <sys/stat.h>
++#include <sys/types.h>
++
++struct stat;
++
++//  Monitor is an abstract baseclass for differend file monitoring
++//  systems. The original system used was IMon, and the Montor API
++//  is heavily influenced by that.
++//  There can only be one instantiation of the Monitor object.
++//
++//  The user of this object uses express() and revoke() to
++//  express/revoke interest in a file to imon.  There is also
++//  a callback, the EventHandler.  When an event comes in,
++//  the EventHandler is called.
++//
++//  The main implementers of the Monitor class is IMon and DNotify
++
++class Monitor {
++public:
++
++    enum Status { OK = 0, BAD = -1 };
++    enum Event { EXEC, EXIT, CHANGE };
++
++    typedef void (*EventHandler)(dev_t, ino_t, int event);
++
++    virtual Status express(const char *name, struct stat *stat_return) = 0;
++    virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0;
++};
++
++#endif /* !Monitor_included */
diff --git a/abs/core-testing/fam/fam-2.7.0-gcc43.patch b/abs/core-testing/fam/fam-2.7.0-gcc43.patch
new file mode 100644
index 0000000..a5ba7f0
--- /dev/null
+++ b/abs/core-testing/fam/fam-2.7.0-gcc43.patch
@@ -0,0 +1,46 @@
+diff -Naur fam-2.7.0-old/include/BTree.h fam-2.7.0/include/BTree.h
+--- fam-2.7.0-old/include/BTree.h	2003-01-20 14:22:30.000000000 +1000
++++ fam-2.7.0/include/BTree.h	2008-10-18 10:43:11.000000000 +1000
+@@ -23,6 +23,8 @@
+ #ifndef BTree_included
+ #define BTree_included
+ 
++#include <cstdlib>
++
+ #include "Boolean.h"
+ 
+ //  This is an in-core B-Tree implementation.
+diff -Naur fam-2.7.0-old/src/DNotify.c++ fam-2.7.0/src/DNotify.c++
+--- fam-2.7.0-old/src/DNotify.c++	2008-10-18 10:33:13.000000000 +1000
++++ fam-2.7.0/src/DNotify.c++	2008-10-18 10:41:22.000000000 +1000
+@@ -31,6 +31,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <libgen.h>
++#include <cstdlib>
+ 
+ #include "DNotify.h"
+ 
+diff -Naur fam-2.7.0-old/src/IMon.c++ fam-2.7.0/src/IMon.c++
+--- fam-2.7.0-old/src/IMon.c++	2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/src/IMon.c++	2008-10-18 10:40:21.000000000 +1000
+@@ -40,7 +40,7 @@
+ #include "Interest.h"
+ #include "Log.h"
+ #include "Scheduler.h"
+-#include "alloc.h"
++#include <memory>
+ 
+ int		   IMon::imonfd = -2;
+ IMon::EventHandler IMon::ehandler = NULL;
+diff -Naur fam-2.7.0-old/src/Interest.h fam-2.7.0/src/Interest.h
+--- fam-2.7.0-old/src/Interest.h	2008-10-18 10:33:13.000000000 +1000
++++ fam-2.7.0/src/Interest.h	2008-10-18 10:40:44.000000000 +1000
+@@ -23,6 +23,7 @@
+ #ifndef Interest_included
+ #define Interest_included
+ 
++#include <cstdlib>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
diff --git a/abs/core-testing/fam/fam-2.7.0-largefiles.patch b/abs/core-testing/fam/fam-2.7.0-largefiles.patch
new file mode 100644
index 0000000..60de9a4
--- /dev/null
+++ b/abs/core-testing/fam/fam-2.7.0-largefiles.patch
@@ -0,0 +1,8 @@
+--- fam-2.7.0/common.am	2003-01-19 06:09:08.000000000 -0600
++++ fam-2.7.0.largefile/common.am	2005-01-12 19:08:06.462113110 -0600
+@@ -1,2 +1,5 @@
+-INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\"
++INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" \
++       -D_FILE_OFFSET_BITS=64                  \
++       -D_LARGEFILE64_SOURCE
++
diff --git a/abs/core-testing/fam/fam-2.7.0-noc++.patch b/abs/core-testing/fam/fam-2.7.0-noc++.patch
new file mode 100644
index 0000000..9188af0
--- /dev/null
+++ b/abs/core-testing/fam/fam-2.7.0-noc++.patch
@@ -0,0 +1,83 @@
+diff -ruN fam-2.7.0/lib/Client.c++ fam-2.7.0.noc++/lib/Client.c++
+--- fam-2.7.0/lib/Client.c++	2003-01-18 14:18:12.000000000 +0000
++++ fam-2.7.0.noc++/lib/Client.c++	2006-03-02 22:47:50.000000000 +0000
+@@ -34,8 +34,6 @@
+ #include <syslog.h>
+ #include <errno.h>
+ 
+-#include <iostream.h>
+-
+ #include "fam.h"
+ #include "Client.h"
+ 
+@@ -440,3 +438,29 @@
+     memcpy(l, p, sizeof(u_int32_t));
+     *l = ntohl(*l);
+ }
++
++/* Some C++ stuff needed when we not link to libstdc++ */
++void *operator new (size_t sz)
++{
++	void *ret = malloc (sz);
++	if (ret == NULL)
++	{
++		fputs ("libfam memory allocation failed\n", stderr);
++	}
++	return ret;
++}
++
++void *operator new[] (size_t sz)
++{
++	return ::operator new(sz);
++}
++
++void operator delete (void *ptr)
++{
++	free (ptr);
++}
++
++void operator delete[] (void *ptr)
++{
++	free (ptr);
++}
+diff -ruN fam-2.7.0/lib/Makefile.am fam-2.7.0.noc++/lib/Makefile.am
+--- fam-2.7.0/lib/Makefile.am	2003-01-19 01:55:10.000000000 +0000
++++ fam-2.7.0.noc++/lib/Makefile.am	2006-03-02 22:43:01.000000000 +0000
+@@ -7,8 +7,11 @@
+ 	Client.h \
+ 	fam.c++
+ 
+-libfam_la_LDFLAGS = -export-symbols fam.sym
+-libfam_la_LIBADD = -lstdc++
++libfam_la_LDFLAGS = -Wl,--version-script=fam.sym.version
++libfam_la_LIBADD =
++AM_CXXFLAGS = -fno-exceptions -fno-rtti
++
++CXXLD=--tag=CC $(CXX)
+ 
+ EXTRA_DIST = fam.sym
+ 
+diff -ruN fam-2.7.0/lib/fam.sym.version fam-2.7.0.noc++/lib/fam.sym.version
+--- fam-2.7.0/lib/fam.sym.version	1970-01-01 00:00:00.000000000 +0000
++++ fam-2.7.0.noc++/lib/fam.sym.version	2006-03-02 22:49:31.000000000 +0000
+@@ -0,0 +1,20 @@
++{
++   global:
++	FAMCancelMonitor;
++	FAMClose;
++	FAMDebugLevel;
++	FamErrlist;
++	FAMErrno;
++	FAMMonitorCollection;
++	FAMMonitorDirectory;
++	FAMMonitorDirectory2;
++	FAMMonitorFile;
++	FAMMonitorFile2;
++	FAMNextEvent;
++	FAMOpen;
++	FAMOpen2;
++	FAMPending;
++	FAMResumeMonitor;
++	FAMSuspendMonitor;
++   local: *;
++};
diff --git a/abs/core-testing/fam/include_fam_h.patch b/abs/core-testing/fam/include_fam_h.patch
new file mode 100644
index 0000000..4248957
--- /dev/null
+++ b/abs/core-testing/fam/include_fam_h.patch
@@ -0,0 +1,11 @@
+--- include/fam.h.orig	2005-05-25 09:26:38.000000000 +0000
++++ include/fam.h	2005-05-25 09:27:04.000000000 +0000
+@@ -41,7 +41,7 @@
+ *****************************************************************************/
+ 
+ /* For NAME_MAX - maximum # of chars in a filename */
+-#include "limits.h"
++#include <limits.h>
+ 
+ 
+ 
diff --git a/abs/core-testing/fftw/PKGBUILD b/abs/core-testing/fftw/PKGBUILD
new file mode 100644
index 0000000..1556108
--- /dev/null
+++ b/abs/core-testing/fftw/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 20304 2008-12-02 10:48:00Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fftw
+pkgver=3.2
+pkgrel=1
+pkgdesc="A library for computing the discrete Fourier transform (DFT)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.fftw.org/"
+depends=('glibc')
+options=(!libtool)
+source=(http://www.fftw.org/${pkgname}-${pkgver}.tar.gz)
+install=fftw.install
+
+# notes:
+# http://www.fftw.org/fftw2_doc/fftw_6.html#SEC69
+# http://www.fftw.org/faq/section2.html#singleprec
+# http://www.fftw.org/fftw3_doc/Precision.html#Precision
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  
+ # build & install double precision
+  ./configure F77=gfortran --prefix=/usr \
+              --enable-shared || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  make clean 
+
+  # build & install long double precission
+  ./configure F77=gfortran --prefix=/usr \
+   --enable-long-double  --enable-shared || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  make clean
+
+  # build + install single precision
+  ./configure F77=gfortran --prefix=/usr \
+              --enable-float --enable-shared || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
+
+  # handle info files
+  rm -f $pkgdir/usr/share/info/dir
+  gzip $pkgdir/usr/share/info/*
+}
diff --git a/abs/core-testing/fftw/fftw.install b/abs/core-testing/fftw/fftw.install
new file mode 100644
index 0000000..a3748aa
--- /dev/null
+++ b/abs/core-testing/fftw/fftw.install
@@ -0,0 +1,22 @@
+info_dir=/usr/share/info
+info_files=(fftw3.info)
+
+post_install() {
+  for f in ${info_files[@]}; do
+    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+        post_install
+}
+
+pre_remove() {
+  for f in ${info_files[@]}; do
+    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+
+
+
diff --git a/abs/core-testing/fluxbox/ChangeLog b/abs/core-testing/fluxbox/ChangeLog
new file mode 100644
index 0000000..f2f2e81
--- /dev/null
+++ b/abs/core-testing/fluxbox/ChangeLog
@@ -0,0 +1,10 @@
+2008-09-19  Eric Belanger  <eric@archlinux.org>
+
+	* fluxbox 1.1.1-1
+	* Upstream update
+
+2008-09-05  Eric Belanger  <eric@archlinux.org>
+
+	* fluxbox 1.1.0.1-1
+	* Upstream update
+        * Added ChangeLog
diff --git a/abs/core-testing/fluxbox/PKGBUILD b/abs/core-testing/fluxbox/PKGBUILD
index 6735ad0..6e1c9c0 100644
--- a/abs/core-testing/fluxbox/PKGBUILD
+++ b/abs/core-testing/fluxbox/PKGBUILD
@@ -1,9 +1,10 @@
-#add custom keys
-
+# $Id: PKGBUILD 12779 2008-09-20 06:42:07Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor:  John Proctor <jproctor@prium.net>
 
 pkgname=fluxbox
-pkgver=1.0.0
-pkgrel=5
+pkgver=1.1.1
+pkgrel=2
 pkgdesc="A lightweight and highly-configurable window manager"
 arch=('i686' 'x86_64')
 url="http://www.fluxbox.org"
@@ -11,30 +12,22 @@ license=('MIT')
 depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'gcc-libs' 'bash' 'imlib2')
 makedepends=('pkgconfig')
 options=('!makeflags')
-source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
-        $pkgname.desktop fluxbox-1.0.0-gcc43.patch keys)
-
-md5sums=('990e276ead0d04421dce4080f485caca' 'eeae9c88a2526ac0bd8afcd9ce97f9ed'\
-         '9ddb3fcd5f080574a44f394282132b3c')
-sha1sums=('7985e35fbb170fda24b9e04610690cd04c7a8748'
-          'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8'
-          '51de3957bacfc4848529ba7df80bddca59b1a20b')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+        fluxbox.desktop keys)
+md5sums=('fa9fa8fe9a44f86522de5754f8b285ca' 'eeae9c88a2526ac0bd8afcd9ce97f9ed' 'f5e10bf230728190830717ed9d17770c')
+sha1sums=('6d49deb6c4c7d73f7567e1cf7d2575c7edc4825f' 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8')
 
 build() {
-  cd $startdir/src/$pkgname-${pkgver}
-  patch -p1 < ../fluxbox-1.0.0-gcc43.patch || return 1
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr \
-   --enable-kde --enable-gnome \
-   --enable-xft --enable-xinerama \
-   --enable-imlib2 --enable-nls
+    --enable-kde --enable-gnome \
+    --enable-xft --enable-xinerama \
+    --enable-imlib2 --enable-nls || return 1
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR=${pkgdir} install || return 1
  # this is a fix to allow fluxbox to shutdown, but this can be changed by the user :-(
-  sed -i 's|^.*slit\.autoHide.*$|session.screen0.slit.autoHide:  True|' \
-    $startdir/pkg/usr/share/fluxbox/init
-  install -D -m644 ../$pkgname.desktop \
-    $startdir/pkg/etc/X11/sessions/$pkgname.desktop
-  install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING
-  install -D -m655 $startdir/src/keys $startdir/pkg/usr/share/fluxbox/keys
-
+  sed -i 's|^.*slit\.autoHide.*$|session.screen0.slit.autoHide:  True|' ${pkgdir}/usr/share/fluxbox/init || return 1
+  install -D -m644 ../fluxbox.desktop ${pkgdir}/etc/X11/sessions/fluxbox.desktop || return 1
+  install -D -m644 ../keys ${pkgdir}/usr/share/fluxbox/keys || return 1
+  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/COPYING || return 1
 }
diff --git a/abs/core-testing/fluxbox/keys b/abs/core-testing/fluxbox/keys
index 06e5f21..b412cbd 100644
--- a/abs/core-testing/fluxbox/keys
+++ b/abs/core-testing/fluxbox/keys
@@ -20,9 +20,9 @@ Mod1 F12 :Workspace 12
 Mod1 x :ExecCommand xterm -fn *18*
 Mod1 s :ExecCommand mythtv-setup
 Mod1 m :ExecCommand mythfrontend
-Mod1 1 :ExecCommand sudo /etc/rc.d/mythtv-backend start
-Mod1 2 :ExecCommand sudo /etc/rc.d/mythtv-backend stop
-Mod1 3 :ExecCommand sudo /etc/rc.d/mythtv-backend restart
+Mod1 1 :ExecCommand sudo sv start mythbackend
+Mod1 2 :ExecCommand sudo sv stop mythbackend
+Mod1 3 :ExecCommand sudo sv restart mythbackend
 Mod1 h :ExecCommand MythVantage -h
 Mod1 Control u :ExecCommand killall -9 unclutter
 
diff --git a/abs/core-testing/ghostscript/PKGBUILD b/abs/core-testing/ghostscript/PKGBUILD
index 2cf5416..8edc722 100644
--- a/abs/core-testing/ghostscript/PKGBUILD
+++ b/abs/core-testing/ghostscript/PKGBUILD
@@ -1,19 +1,18 @@
-# $Id: PKGBUILD 7626 2008-08-03 15:52:01Z jgc $
+# $Id: PKGBUILD 20527 2008-12-05 14:17:31Z allan $
 # Maintainer: AndyRTR <andyrtr@archlinux.org>
 
 pkgname=ghostscript
 pkgver=8.63
-pkgrel=3
+pkgrel=4
 pkgdesc="An interpreter for the PostScript language"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
 depends=('libxext' 'libxt' 'libcups>=1.3.8-2' 'fontconfig>=2.6.0' 'gtk2>=2.12.11' 'gnutls>=2.4.1')
 makedepends=('automake' 'autoconf')
+optdepends=('texlive-core: dvipdf')
 replaces=('ghostscript-lrpng')
 provides=('ghostscript-lprng')
 url="http://www.cs.wisc.edu/~ghost/"
-#url="http://www.cups.org/espgs/"
-install=ghostscript.install
 source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs863/ghostscript-${pkgver}.tar.bz2
 	ghostscript-fPIC.patch)
 options=('!libtool' '!makeflags')
diff --git a/abs/core-testing/gnutls/PKGBUILD b/abs/core-testing/gnutls/PKGBUILD
index ec50f98..7e3981c 100644
--- a/abs/core-testing/gnutls/PKGBUILD
+++ b/abs/core-testing/gnutls/PKGBUILD
@@ -1,24 +1,26 @@
-# $Id: PKGBUILD 8715 2008-08-16 04:25:59Z eric $
+# $Id: PKGBUILD 22309 2008-12-25 19:07:27Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 # Notice:
 # When building a new major version, build, install, build again.
 #
 pkgname=gnutls
-pkgver=2.4.1
+pkgver=2.6.3
 pkgrel=1
 pkgdesc="A library which provides a secure layer over a reliable transport layer"
 arch=(i686 x86_64)
 license=('GPL3' 'LGPL')
 url="http://www.gnu.org/software/gnutls/"
+install=gnutls.install
 options=('libtool')
-depends=('gcc-libs' 'libtasn1>=1.4' 'readline' 'zlib' 'libgcrypt>=1.4')
+depends=('gcc-libs>=4.3.2' 'libtasn1>=1.7' 'readline' 'zlib' 'libgcrypt>=1.4.3')
 source=(ftp://ftp.gnutls.org/pub/gnutls/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('573db36cb3f8472b0293cfa1f52c607a')
+md5sums=('c6d2d1996b87b238ad6f73f92225d9a2')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --with-zlib --disable-guile || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -f "${pkgdir}/usr/share/info/dir"
 }
diff --git a/abs/core-testing/gnutls/gnutls.install b/abs/core-testing/gnutls/gnutls.install
new file mode 100644
index 0000000..0cf66fa
--- /dev/null
+++ b/abs/core-testing/gnutls/gnutls.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gnutls.info gnutls.info-1 gnutls.info-2 gnutls.info-3)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
diff --git a/abs/core-testing/gsfonts/PKGBUILD b/abs/core-testing/gsfonts/PKGBUILD
index 5294731..01bb023 100644
--- a/abs/core-testing/gsfonts/PKGBUILD
+++ b/abs/core-testing/gsfonts/PKGBUILD
@@ -8,7 +8,7 @@ arch=(i686 x86_64)
 depends=('xorg-font-utils' 'fontconfig')
 install=xfonts.install
 url="http://sourceforge.net/projects/ghostscript"
-source=(http://switch.dl.sourceforge.net/ghostscript/ghostscript-fonts-std-8.11.tar.gz)
+source=(http://superb-east.dl.sourceforge.net/sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz)
 md5sums=('6865682b095f8c4500c54b285ff05ef6')
 
 build() {
diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD
index d119d56..1966409 100644
--- a/abs/core-testing/gtk2/PKGBUILD
+++ b/abs/core-testing/gtk2/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 19648 2008-11-28 20:15:22Z jgc $
+# $Id: PKGBUILD 22045 2008-12-21 13:00:15Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=gtk2
-pkgver=2.14.5
+pkgver=2.14.6
 pkgrel=1
 pkgdesc="The GTK+ Toolkit (v2)"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
 install=gtk2.install
-depends=('atk>=1.24.0' 'pango>=1.22.3' 'libxcursor' 'libxinerama' 'libxrandr>=1.2.1' 'libxi' 'libcups>=1.3.9' 'libxcomposite' 'libxdamage' 'heimdal>=1.2' 'gnutls>=2.4.1')
+depends=('atk>=1.24.0' 'pango>=1.22.4' 'libxcursor' 'libxinerama' 'libxrandr>=1.2.1' 'libxi' 'libcups>=1.3.9' 'libxcomposite' 'libxdamage' 'heimdal>=1.2.1' 'gnutls>=2.4.2')
 makedepends=('pkgconfig')
 replaces=('gtkprint-cups' 'gail')
 conflicts=('gtkprint-cups' 'gail')
@@ -17,21 +17,25 @@ options=('!libtool' '!docs')
 backup=(etc/gtk-2.0/gtkrc)
 license=('LGPL')
 source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.14/gtk+-${pkgver}.tar.bz2
-	gtkclipboard-check.patch)
-md5sums=('1b1b5d7ab5a25e84682cb27ee4808a40'
-         '4025d3c15d6c6f73a032f403ffd4ff1c')
+	gtkclipboard-check.patch
+	gtk2-emit-size-change.patch)
+md5sums=('69c2d2842203d7b627bc6ec34cb4a4f8'
+         '4025d3c15d6c6f73a032f403ffd4ff1c'
+         '942981cbba5057d9f02f4393e552f101')
 
 build() {
-  cd ${startdir}/src/gtk+-${pkgver}
+  cd "${srcdir}/gtk+-${pkgver}"
   # Workaround patch for flash
-  patch -Np1 -i ${startdir}/src/gtkclipboard-check.patch || return 1
+  patch -Np1 -i "${srcdir}/gtkclipboard-check.patch" || return 1
+  # gdk does not let xfwm know about screen size changes
+  patch -Np1 -i "${srcdir}/gtk2-emit-size-change.patch" || return 1
 
   ./configure --prefix=/usr --sysconfdir=/etc \
               --localstatedir=/var --with-xinput=yes \
 	      --without-libjasper \
 	      --with-included-loaders=png || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  echo 'gtk-fallback-icon-theme = "gnome"' > ${startdir}/pkg/etc/gtk-2.0/gtkrc || return 1
+  echo 'gtk-fallback-icon-theme = "gnome"' > "${pkgdir}/etc/gtk-2.0/gtkrc" || return 1
 }
diff --git a/abs/core-testing/gtk2/gtk2-emit-size-change.patch b/abs/core-testing/gtk2/gtk2-emit-size-change.patch
new file mode 100644
index 0000000..34053a8
--- /dev/null
+++ b/abs/core-testing/gtk2/gtk2-emit-size-change.patch
@@ -0,0 +1,26 @@
+diff -Naur gtk+-2.14.5-old/gdk/x11/gdkscreen-x11.c gtk+-2.14.5/gdk/x11/gdkscreen-x11.c
+--- gtk+-2.14.5-old/gdk/x11/gdkscreen-x11.c	2008-11-24 16:36:03.000000000 +1000
++++ gtk+-2.14.5/gdk/x11/gdkscreen-x11.c	2008-12-03 00:39:38.000000000 +1000
+@@ -894,11 +894,6 @@
+ _gdk_x11_screen_size_changed (GdkScreen *screen,
+ 			      XEvent    *event)
+ {
+-  gint width, height;
+-
+-  width = gdk_screen_get_width (screen);
+-  height = gdk_screen_get_height (screen);
+-
+ #ifdef HAVE_RANDR
+   if (!XRRUpdateConfiguration (event))
+     return;
+@@ -915,10 +910,6 @@
+     return;
+ #endif
+ 
+-  if (width == gdk_screen_get_width (screen) && 
+-      height == gdk_screen_get_height (screen))
+-    return;
+-
+   _gdk_x11_screen_process_monitors_change (screen);
+   g_signal_emit_by_name (screen, "size_changed");
+ }
diff --git a/abs/core-testing/hal-info/PKGBUILD b/abs/core-testing/hal-info/PKGBUILD
index 7f697c8..a7f8dd0 100644
--- a/abs/core-testing/hal-info/PKGBUILD
+++ b/abs/core-testing/hal-info/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 2153 2008-05-27 14:12:39Z jgc $
+# $Id: PKGBUILD 22303 2008-12-25 18:44:16Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=hal-info
-_date=20080508
-pkgver=0.20080508
+_date=20081219
+pkgver=0.${_date}
 pkgrel=1
 pkgdesc="Hardware Abstraction Layer information files"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
 url="http://www.freedesktop.org/wiki/Software/hal"
 source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz)
-md5sums=('6fc99d15d38945c17a291ea93e664664')
+md5sums=('be7d6d47fd18250a99a3267e712d8af7')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${_date}
+  cd "${srcdir}/${pkgname}-${_date}"
   ./configure --prefix=/usr --sysconfdir=/etc || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/hal/PKGBUILD b/abs/core-testing/hal/PKGBUILD
index f1a3b3f..4bad72d 100644
--- a/abs/core-testing/hal/PKGBUILD
+++ b/abs/core-testing/hal/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 8861 2008-08-16 22:34:13Z eric $
+# $Id: PKGBUILD 12450 2008-09-14 10:49:05Z pierre $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Link Dupont <link@subpop.net>
 
 pkgname=hal
 pkgver=0.5.11
-pkgrel=1
+pkgrel=4
 pkgdesc="Hardware Abstraction Layer"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
@@ -18,10 +18,17 @@ source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2
 	hal-policy.patch
 	cryptsetup_location.patch
 	hal-0.5.9-hide-diagnostic.patch
-	ntfs3g-valid-options.patch)
-md5sums=('5e8935ab61bcb14afd2d4548084aace0' '277e96ac130d7bfce0b30f0b80db8782'\
-         '18dcdaa79952e2057c2e4745fbc8ad52' 'c688a3c6574699365926f4fef7441545'\
-         '4d4b6801a1cedca22b8bdd9db73b16fb' '4242a2c78885e396f639d0cd5e33218c')
+	ntfs3g-valid-options.patch
+	fix-udev-compatibility.patch
+	ntfs-mount-fix.patch)
+md5sums=('5e8935ab61bcb14afd2d4548084aace0'
+         '277e96ac130d7bfce0b30f0b80db8782'
+         '18dcdaa79952e2057c2e4745fbc8ad52'
+         'c688a3c6574699365926f4fef7441545'
+         '4d4b6801a1cedca22b8bdd9db73b16fb'
+         '4242a2c78885e396f639d0cd5e33218c'
+         '1a33d73fa422df2f05b7e3483836f778'
+         '96cf8835c30dc581c4fcf72b6ad7675e')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
@@ -29,6 +36,9 @@ build() {
   patch -Np1 -i ${startdir}/src/cryptsetup_location.patch || return 1
   patch -Np1 -i ${startdir}/src/hal-0.5.9-hide-diagnostic.patch || return 1
   patch -Np0 -i ${startdir}/src/ntfs3g-valid-options.patch || return 1
+  # Fix compatibility with udev 126 and later
+  patch -Np1 -i ${startdir}/src/fix-udev-compatibility.patch || return 1
+  patch -p0 -i ${srcdir}/ntfs-mount-fix.patch || return 1
 
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
               --libexecdir=/usr/lib/hal --enable-static=no \
diff --git a/abs/core-testing/hal/fix-udev-compatibility.patch b/abs/core-testing/hal/fix-udev-compatibility.patch
new file mode 100644
index 0000000..2cfa3ad
--- /dev/null
+++ b/abs/core-testing/hal/fix-udev-compatibility.patch
@@ -0,0 +1,31 @@
+diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c
+--- hal-0.5.11.orig/hald/linux/blockdev.c	2008-05-08 01:23:41.000000000 +0200
++++ hal-0.5.11/hald/linux/blockdev.c	2008-09-12 19:38:36.000000000 +0200
+@@ -1750,11 +1750,11 @@
+         char *ret;
+         char *u_stdout;
+         int u_exit_status;
+-        const char *argv[] = {"/usr/bin/udevinfo", "--root", "--query", "name", "--path", NULL, NULL};
++        const char *argv[] = {"/sbin/udevadm", "info", "--root", "--query", "name", "--path", NULL, NULL};
+         GError *g_error;
+ 
+         ret = NULL;
+-        argv[5] = sysfs_path;
++        argv[6] = sysfs_path;
+ 
+         g_error = NULL;
+ 
+diff -Nur hal-0.5.11.orig/hald/linux/coldplug.c hal-0.5.11/hald/linux/coldplug.c
+--- hal-0.5.11.orig/hald/linux/coldplug.c	2008-05-08 01:23:32.000000000 +0200
++++ hal-0.5.11/hald/linux/coldplug.c	2008-09-12 19:37:47.000000000 +0200
+@@ -149,8 +149,8 @@
+ static gboolean
+ hal_util_init_sysfs_to_udev_map (void)
+ {
+-	char *udevdb_export_argv[] = { "/usr/bin/udevinfo", "-e", NULL };
+-	char *udevroot_argv[] = { "/usr/bin/udevinfo", "-r", NULL };
++	char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL };
++	char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL };
+ 	int udevinfo_exitcode;
+ 	UdevInfo *info = NULL;
+ 	char *p;
diff --git a/abs/core-testing/hal/ntfs-mount-fix.patch b/abs/core-testing/hal/ntfs-mount-fix.patch
new file mode 100644
index 0000000..13597f2
--- /dev/null
+++ b/abs/core-testing/hal/ntfs-mount-fix.patch
@@ -0,0 +1,18 @@
+--- tools/hal-storage-mount.c.orig	2008-04-21 01:48:27.000000000 +0200
++++ tools/hal-storage-mount.c	2008-04-21 01:47:44.000000000 +0200
+@@ -769,13 +769,13 @@
+ 
+ 	if (pol_is_fixed) {
+ 		if (pol_change_uid) {
+-			action = NULL; /* "hal-storage-mount-fixed-extra-options"; TODO: rethink */
++			action = "hal-storage-mount-fixed-extra-options"; /*TODO: rethink */
+ 		} else {
+ 			action = "org.freedesktop.hal.storage.mount-fixed";
+ 		}
+ 	} else {
+ 		if (pol_change_uid) {
+-			action = NULL; /* "hal-storage-mount-removable-extra-options"; TODO: rethink "extra-options" */
++			action = "hal-storage-mount-removable-extra-options"; /*TODO: rethink "extra-options" */
+ 		} else {
+ 			action = "org.freedesktop.hal.storage.mount-removable";
+ 		}
diff --git a/abs/core-testing/heimdal/PKGBUILD b/abs/core-testing/heimdal/PKGBUILD
index 4c79af6..06dd0cd 100644
--- a/abs/core-testing/heimdal/PKGBUILD
+++ b/abs/core-testing/heimdal/PKGBUILD
@@ -1,33 +1,33 @@
-# $Id: PKGBUILD 3738 2008-06-30 20:03:06Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 21345 2008-12-12 02:52:37Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 #
-### Attention: build it 2 times - it links against itself! ###
-#   ^ better remove old pkg before ;)
+### Attention: remove old pkg before building - it links against itself! ###
+#
 
 pkgname=heimdal
-pkgver=1.2
-pkgrel=1
-pkgdesc="Heimdal Kerberos V5 libraries"
-arch=(i686 x86_64)
-url="http://www.pdc.kth.se/heimdal/"
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="Implementation of Kerberos V5 libraries"
+arch=('i686' 'x86_64')
+url="http://www.h5l.org/"
 license=('custom')
 depends=('db>=4.7' 'openssl' 'e2fsprogs')
-options=('!libtool' '!emptydirs')
 backup=(etc/krb5.conf)
-source=(http://www.h5l.org/dist/src/heimdal-$pkgver.tar.gz \
+options=('!libtool' '!emptydirs')
+install=$pkgname.install
+source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz \
 	002_all_heimdal-no_libedit.patch \
 	003_all_heimdal-fPIC.patch \
 	004_all_heimdal-rxapps.patch \
-	#006_all_heimdal-suid_fix.patch \
 	heimdal-kdc.rc \
 	kadmind.rc \
 	kpasswd.rc)
-md5sums=('8d6b690069acd2ae8ada1315174f52f9'
+md5sums=('6e5028077e2a6b101a4a72801ba71b9e'
          '1199c4a4a38e9c2b2c0a99bd5781767a'
          '3d0262aa218e1611500de735d3581e28'
          '0fe81cb1e33b2a2e60edaf47dfdfe4de'
-         #'30372b1581e4d49a76688e450fd42443'
          'e59650992b9541a30dfce727a194f6e0'
          '1f2f86a67bbfddb7af581d35fdca9627'
          'f8f1eca95b9d3f2b4ebf2417b71b81cf')
@@ -39,24 +39,13 @@ build() {
   patch -Np0 -i ${srcdir}/002_all_heimdal-no_libedit.patch || return 1
   patch -Np0 -i ${srcdir}/003_all_heimdal-fPIC.patch || return 1
   patch -Np0 -i ${srcdir}/004_all_heimdal-rxapps.patch || return 1
-#  patch -Np0 -i ${srcdir}/006_all_heimdal-suid_fix.patch || return 1
-  
-#  libtoolize -f -c || return 1
-#  aclocal -I cf || return 1  
-#  autoheader || return 1
-#  automake -a || return 1
-#  autoconf || return 1
-#  libtoolize -f -c || return 1
-
-#  autoreconf || return 1
-#  libtoolize -f -c || return 1
 
   sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in configure \
 	doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \
 	lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5
 
   ./configure --prefix=/usr --enable-shared=yes --without-x \
-	--sysconfdir=/etc  --mandir=/usr/man \
+	--sysconfdir=/etc  --mandir=/usr/share/man \
 	--datadir=/var/lib/heimdal \
 	--localstatedir=/var/lib/heimdal \
 	--with-openssl=/usr \
@@ -69,35 +58,35 @@ build() {
   make DESTDIR=${pkgdir} install || return 1
 
   for i in telnetd ftpd rshd; do
-    mv ${pkgdir}/usr/man/man8/${i}.8 ${pkgdir}/usr/man/man8/k${i}.8
+    mv ${pkgdir}/usr/share/man/man8/${i}.8 ${pkgdir}/usr/share/man/man8/k${i}.8
     mv ${pkgdir}/usr/sbin/${i} ${pkgdir}/usr/sbin/k${i}
   done
   
   for i in rcp rsh telnet ftp su login; do
-    if [ -f ${pkgdir}/usr/man/man1/${i}.1 ]; then
-      mv ${pkgdir}/usr/man/man1/${i}.1 ${pkgdir}/usr/man/man1/k${i}.1
+    if [ -f ${pkgdir}/usr/share/man/man1/${i}.1 ]; then
+      mv ${pkgdir}/usr/share/man/man1/${i}.1 ${pkgdir}/usr/share/man/man1/k${i}.1
     fi
     mv ${pkgdir}/usr/bin/${i} ${pkgdir}/usr/bin/k${i}
   done
-  rm -rf ${pkgdir}/usr/man/cat{1,3,5,8}
+  rm -rf ${pkgdir}/usr/share/man/cat{1,3,5,8}
   
-  #Arch could be a KDC too
+  # Arch could be a KDC too
   mkdir -p ${pkgdir}/etc/rc.d
   install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc
   for i in heimdal-kdc kadmind kpasswd; do
     install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i}
   done
 
-  #Remove some conflicts 
-  rm ${pkgdir}/usr/man/man5/ftpusers.5*
-  rm ${pkgdir}/usr/man/man5/login.access.5*
-  # and some more
-  rm ${pkgdir}/usr/bin/mk_cmds
-  rm ${pkgdir}/usr/include/ss/ss.h
-  rm ${pkgdir}/usr/lib/libss.a
-  rm ${pkgdir}/usr/lib/libss.so
+  # Remove conflicts 
+  rm ${pkgdir}/usr/share/man/man5/ftpusers.5*		# man-pages
+  rm ${pkgdir}/usr/share/info/dir
+
+  # Compress info pages
+  for page in heimdal hx509; do
+    gzip -9 ${pkgdir}/usr/share/info/${page}.info
+  done
 
-  # install the license
+  # Install the license
   install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \
   	${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
diff --git a/abs/core-testing/heimdal/heimdal.install b/abs/core-testing/heimdal/heimdal.install
new file mode 100644
index 0000000..499d216
--- /dev/null
+++ b/abs/core-testing/heimdal/heimdal.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(heimdal hx509)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file.info.gz $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file.info.gz $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/ilmbase/PKGBUILD b/abs/core-testing/ilmbase/PKGBUILD
new file mode 100644
index 0000000..b8930a5
--- /dev/null
+++ b/abs/core-testing/ilmbase/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ilmbase
+pkgver=1.0.1
+pkgrel=1
+depends=('gcc-libs')
+pkgdesc="IlmThread is a thread abstraction library for use with OpenEXR"
+arch=(i686 x86_64)
+license=('custom')
+options=('!libtool')
+source=(http://savannah.nongnu.org/download/openexr/$pkgname-$pkgver.tar.gz)
+url="http://www.openexr.org"
+md5sums=('f76f094e69a6079b0beb93d97e2a217e')
+
+build() {
+  cd $startdir/src/$pkgname-$pkgver
+  ./configure --prefix=/usr
+  make || return 1
+  make DESTDIR=$startdir/pkg install
+  install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/abs/core-testing/imagemagick/ChangeLog b/abs/core-testing/imagemagick/ChangeLog
index 8b3a5fb..e46815d 100644
--- a/abs/core-testing/imagemagick/ChangeLog
+++ b/abs/core-testing/imagemagick/ChangeLog
@@ -1,3 +1,50 @@
+2008-12-29  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.8.2-1
+	* Upstream update
+
+2008-12-14  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.7.8-1
+	* Upstream update
+
+2008-12-05  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.7.0-1
+	* Upstream update
+	* Rebuild against heimdal 1.2.1
+
+2008-11-25  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.6.3-1
+	* Upstream update
+
+2008-11-14  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.5.6-1
+	* Upstream update
+
+2008-10-26  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.5.0-1
+	* Upstream update
+
+2008-10-18  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.4.9-1
+	* Upstream update
+
+2008-10-03  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.4.1-1
+	* Upstream update
+
+2008-09-06  Eric Belanger  <eric@archlinux.org>
+
+	* imagemagick 6.4.3.6-1
+	* Upstream update
+	* Added JPEG2000 support (close FS#10544)
+
 2008-08-19  Eric Belanger  <eric@archlinux.org>
 
 	* imagemagick 6.4.2.10-1
diff --git a/abs/core-testing/imagemagick/PKGBUILD b/abs/core-testing/imagemagick/PKGBUILD
index 79555bf..ac04f26 100644
--- a/abs/core-testing/imagemagick/PKGBUILD
+++ b/abs/core-testing/imagemagick/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 9867 2008-08-20 05:56:48Z eric $
+# $Id: PKGBUILD 22960 2008-12-30 05:45:59Z eric $
 # Maintainer: Eric Belanger <eric@archlinux.org>
 
 # NOTE: ImageMagick builds against an existing installation
@@ -8,39 +8,39 @@
 # install old package, build new package, install new package, rebuild
 
 pkgname=imagemagick
-pkgver=6.4.2.10
+pkgver=6.4.8.2
 pkgrel=1
 pkgdesc="An image viewing/manipulation program"
 arch=('i686' 'x86_64')
 url="http://www.imagemagick.org/"
 license=('custom')
-depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr' 'libtool>=2.2' 'bzip2' 'libxml2')
+depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr' 'libtool>=2.2' 'heimdal>=1.2.1' 'bzip2' 'libxml2' 'jasper')
 #makedepends=('ghostscript' 'openexr')
 options=('!makeflags' '!docs')
 source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2 \
         libpng_mmx_patch_x86_64.patch add_delegate.patch)
-md5sums=('f60ae313a2cc2fcc980543165e7ebaf4' '069980fc2590c02aed86420996259302'\
+md5sums=('8454e93a0b88fd9319157b5301deff38' '069980fc2590c02aed86420996259302'\
          '7f5851c4450b73d52df55c7e806cc316')
-sha1sums=('0c45712a07b0d337ac4130c3ad605566d013ea3f'
+sha1sums=('e5de65c998776c5b49a1b364d05ca3515310e23a'
           'e42f3acbe85b6098af75c5cecc9a254baaa0482c'
           '19b40dcbc5bf8efb8ce7190fed17e2921de32ea5')
 
 build() {
-  cd ${srcdir}/ImageMagick-${pkgver%.*}
+  cd ${srcdir}/ImageMagick-${pkgver%.*}-${pkgver##*.}
 
   if [ "${CARCH}" = "x86_64" ]; then
     patch -Np1 < ../libpng_mmx_patch_x86_64.patch || return 1
   fi
 
   patch -p0 < ../add_delegate.patch || return 1
+  sed -i "s/with_autotrace='no'/with_autotrace='yes'/" configure || return 1
 
-  #LIBS=-lMagickWand ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \
-  ./configure --prefix=/usr --without-modules --disable-static --disable-openmp \
-              --with-x --with-wmf --with-openexr \
+  LIBS=-lMagickWand ./configure --prefix=/usr --without-modules --disable-static --enable-openmp \
+              --with-x --with-wmf --with-openexr --with-xml \
               --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
               --with-perl --with-perl-options="INSTALLDIRS=vendor" \
-              --without-gvc --without-djvu --without-jp2 \
-               --without-fpx --without-dps || return 1
+              --without-gvc --without-djvu --with-jp2 \
+              --without-jbig --without-fpx --without-dps || return 1
 
   make || return 1
   make DESTDIR=${pkgdir} install || return 1
diff --git a/abs/core-testing/inputproto/PKGBUILD b/abs/core-testing/inputproto/PKGBUILD
index ddd445c..abbb0fc 100644
--- a/abs/core-testing/inputproto/PKGBUILD
+++ b/abs/core-testing/inputproto/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 670 2008-04-21 13:49:33Z alexander $
+# $Id: PKGBUILD 7996 2008-08-05 17:48:09Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=inputproto
-pkgver=1.4.3
+pkgver=1.4.4
 pkgrel=1
 pkgdesc="X11 Input extension wire protocol"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3a532379f226c34b36a5c585999f75e4')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd ${srcdir}/${pkgname}-${pkgver}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 
-  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \
-                   ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
-md5sums=('a0f0d8cf6fbf0db8ba3937d0cc16138d')
diff --git a/abs/core-testing/intel-dri/PKGBUILD b/abs/core-testing/intel-dri/PKGBUILD
index 167f4e4..8da4e48 100644
--- a/abs/core-testing/intel-dri/PKGBUILD
+++ b/abs/core-testing/intel-dri/PKGBUILD
@@ -2,37 +2,42 @@
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=intel-dri
-pkgver=7.0.3
-pkgrel=1
+pkgver=7.2
+pkgrel=2
 pkgdesc="Mesa DRI drivers for Intel chipsets"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0' 'expat>=2.0')
-makedepends=('imake' 'mesa>=7.0.3' 'glproto>=1.4.9')
+depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.2')
+makedepends=('glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
 options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2)
-md5sums=('e6e6379d7793af40a6bc3ce1bace572e')
+source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
+	mesa-7.1-link-shared.patch
+	intel-revert-vbl.patch
+	intel-disable-ttm-warning.patch)
+md5sums=('04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b'
+         'a111f4dc82e894f8801bc3fa129af7af'
+         'a393d374b5d187ff2a5bb90b0f347c9a')
 
 build() {
-  cd ${startdir}/src/Mesa-${pkgver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = i810 i915 i915tex i965" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${pkgver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd ${srcdir}/Mesa-${pkgver}
+  patch -Np1 -i "${srcdir}/intel-revert-vbl.patch" || return 1
+  patch -Np1 -i "${srcdir}/intel-disable-ttm-warning.patch" || return 1
+  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=i810,i915,i965 \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  rm -rf ${pkgdir}/usr/include
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
 }
diff --git a/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch b/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
new file mode 100644
index 0000000..f9d5223
--- /dev/null
+++ b/abs/core-testing/intel-dri/intel-disable-ttm-warning.patch
@@ -0,0 +1,13 @@
+diff -ruN Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c
+--- Mesa-7.2.orig/src/mesa/drivers/dri/intel/intel_context.c	2008-09-13 20:25:44.000000000 +0000
++++ Mesa-7.2/src/mesa/drivers/dri/intel/intel_context.c	2008-12-21 21:27:45.000000000 +0000
+@@ -490,9 +490,6 @@
+    if (intel->bufmgr == NULL) {
+       if (ttm_disable) {
+ 	 fprintf(stderr, "TTM buffer manager disabled.  Using classic.\n");
+-      } else {
+-	 fprintf(stderr, "Failed to initialize TTM buffer manager.  "
+-		 "Falling back to classic.\n");
+       }
+ 
+       if (intelScreen->tex.size == 0) {
diff --git a/abs/core-testing/intel-dri/intel-revert-vbl.patch b/abs/core-testing/intel-dri/intel-revert-vbl.patch
new file mode 100644
index 0000000..0394414
--- /dev/null
+++ b/abs/core-testing/intel-dri/intel-revert-vbl.patch
@@ -0,0 +1,21 @@
+commit 532d2051245a1d8afe7ca236f1d966d555bb121a
+Author: Dave Airlie <airlied@linux.ie>
+Date:   Fri Sep 12 17:21:25 2008 +1000
+
+    Revert "intel: sync to vblank by default"
+    
+    This reverts commit e9bf3e4cc9a7e4bcd4c45bd707541d26ecdf0409.
+
+diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
+index c193830..f02192d 100644
+--- a/src/mesa/drivers/dri/intel/intel_screen.c
++++ b/src/mesa/drivers/dri/intel/intel_screen.c
+@@ -55,7 +55,7 @@ PUBLIC const char __driConfigOptions[] =
+    DRI_CONF_BEGIN
+    DRI_CONF_SECTION_PERFORMANCE
+       DRI_CONF_FTHROTTLE_MODE(DRI_CONF_FTHROTTLE_IRQS)
+-      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_ALWAYS_SYNC)
++      DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_0)
+       /* Options correspond to DRI_CONF_BO_REUSE_DISABLED,
+        * DRI_CONF_BO_REUSE_ALL
+        */
diff --git a/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch b/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/intel-dri/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/intltool/ChangeLog b/abs/core-testing/intltool/ChangeLog
new file mode 100644
index 0000000..f9a7192
--- /dev/null
+++ b/abs/core-testing/intltool/ChangeLog
@@ -0,0 +1,29 @@
+2008-11-28  Jan de Groot  <jgc@archlinux.org>
+
+	* intltool 0.40.5-1
+	* Upstream update
+
+2008-09-25  Jan de Groot  <jgc@archlinux.org>
+
+	* intltool 0.40.4-1
+	* Upstream update
+
+2008-07-28  Eric Belanger  <eric@archlinux.org>
+
+	* intltool 0.40.3-1
+	* Upstream update
+
+2008-07-23  Eric Belanger  <eric@archlinux.org>
+
+	* intltool 0.40.1-1
+	* Upstream update
+
+2008-06-08  Eric Belanger  <eric@archlinux.org>
+
+	* intltool 0.40.0-1
+	* Upstream update
+
+2008-03-01  Eric Belanger  <eric@archlinux.org>
+
+	* intltool 0.37.1-1
+	* Upstream update
diff --git a/abs/core-testing/intltool/PKGBUILD b/abs/core-testing/intltool/PKGBUILD
new file mode 100644
index 0000000..b780d3b
--- /dev/null
+++ b/abs/core-testing/intltool/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 19652 2008-11-28 20:22:55Z jgc $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=intltool
+pkgver=0.40.5
+pkgrel=1
+pkgdesc="The internationalization tool collection"
+arch=('i686' 'x86_64')
+url="http://freedesktop.org/wiki/Software/intltool"
+license=('GPL')
+depends=('perlxml')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3e7ded6f50d88cf8b8bb505eaf591775')
+sha1sums=('72a67f18dbc12e1af11bfff80100993107b4df84')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/abs/core-testing/jack-audio-connection-kit/PKGBUILD b/abs/core-testing/jack-audio-connection-kit/PKGBUILD
index f9d73eb..b9f0ed8 100644
--- a/abs/core-testing/jack-audio-connection-kit/PKGBUILD
+++ b/abs/core-testing/jack-audio-connection-kit/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 9246 2008-08-17 05:38:58Z allan $
 # Maintainer: tobias <tobias@archlinux.net>
 # Contributor: Robert Emil Berge <robert@rebi.no>
 
 pkgname=jack-audio-connection-kit
 pkgver=0.109.2
-pkgrel=1
+pkgrel=2
 pkgdesc="a low-latency audio server"
 arch=(i686 x86_64)
 license=(GPL2 LGPL2)
diff --git a/abs/core-testing/kdelibs3/PKGBUILD b/abs/core-testing/kdelibs3/PKGBUILD
index f4ed7a0..2effdcc 100644
--- a/abs/core-testing/kdelibs3/PKGBUILD
+++ b/abs/core-testing/kdelibs3/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=kdelibs3
 pkgver=3.5.10
-pkgrel=1
+pkgrel=2
 pkgdesc="KDE3 Core Libraries"
 arch=('i686' 'x86_64')
 url="http://www.kde.org"
@@ -15,7 +15,7 @@ depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups'
 makedepends=('pkgconfig' 'cups')
 options=('libtool')
 install='kdelibs3.install'
-source=("ftp://carroll.aset.psu.edu/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"
+source=("http://download.kde.org/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"
         'kde3.profile')
 md5sums=('43cd55ed15f63b5738d620ef9f9fd568'
          '3c49828eb8985cfb25af8e1495f7800a')
diff --git a/abs/core-testing/libcups/PKGBUILD b/abs/core-testing/libcups/PKGBUILD
index 363a46a..fbdac67 100644
--- a/abs/core-testing/libcups/PKGBUILD
+++ b/abs/core-testing/libcups/PKGBUILD
@@ -1,15 +1,16 @@
-# $Id: PKGBUILD 7638 2008-08-03 15:54:53Z jgc $
+# $Id: PKGBUILD 20496 2008-12-05 11:29:11Z allan $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
 pkgname=libcups
-pkgver=1.3.8
+pkgver=1.3.9
 pkgrel=2
 pkgdesc="The CUPS Printing System"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.cups.org/"
 depends=('gnutls>=2.4.1' 'libtiff' 'libpng' 'heimdal>=1.2')
-source=(http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
-md5sums=('84e09577d673b212f605dd09caee456c')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
+md5sums=('cf63f451c356e6cabb08972d4d11c365')
 
 build() {
   cd ${srcdir}/cups-${pkgver}
diff --git a/abs/core-testing/libdaemon/PKGBUILD b/abs/core-testing/libdaemon/PKGBUILD
index 8750faf..6c123ab 100644
--- a/abs/core-testing/libdaemon/PKGBUILD
+++ b/abs/core-testing/libdaemon/PKGBUILD
@@ -1,23 +1,24 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Mark Rosenstand <mark@archlinux.org>
+# $Id: PKGBUILD 19217 2008-11-17 21:02:07Z thayer $
 # Contributor: Manolis Tzanidakis
+# Contributor: Mark Rosenstand <mark@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
 pkgname=libdaemon
-pkgver=0.12
+pkgver=0.13
 pkgrel=1
-pkgdesc="A lightweight C library which eases the writing of UNIX daemons."
-arch=('i686' 'x86_64')
-license=('LGPL')
+pkgdesc="A lightweight C library which eases the writing of UNIX daemons"
 url="http://0pointer.de/lennart/projects/libdaemon/"
+license=('LGPL')
+arch=('i686' 'x86_64')
 depends=('glibc')
 source=(http://0pointer.de/lennart/projects/libdaemon/$pkgname-$pkgver.tar.gz)
-md5sums=('76596823cc1a6d1cdf7779b782ff0ee6')
-sha1sums=('2b45ab37df853afd25f7985ed699b799e0464413')
 options=('!libtool')
+md5sums=('ae9113fcd825d5a7f07e5ddccb3c3102')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  ./configure --prefix=/usr --disable-doxygen --disable-lynx
+  cd $srcdir/$pkgname-$pkgver
+  ./configure --prefix=/usr --disable-lynx || return 1
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR=$pkgdir install || return 1
 }
 
diff --git a/abs/core-testing/libdrm/PKGBUILD b/abs/core-testing/libdrm/PKGBUILD
index 19a4db2..816aa2a 100644
--- a/abs/core-testing/libdrm/PKGBUILD
+++ b/abs/core-testing/libdrm/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 19237 2008-11-17 22:36:17Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libdrm
-pkgver=2.3.0
-pkgrel=1
+pkgver=2.3.1
+pkgrel=2
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
 depends=('glibc')
-options=('!libtool')
+options=('!libtool' 'force')
 url="http://dri.freedesktop.org/"
 source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('01a1e1ee0268a2403db42fa630036ab2')
+md5sums=('620fe7dd02c3236c3e9881a3a238173d')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/libexif/PKGBUILD b/abs/core-testing/libexif/PKGBUILD
index 74989c8..7c47361 100644
--- a/abs/core-testing/libexif/PKGBUILD
+++ b/abs/core-testing/libexif/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 23029 2009-01-01 16:38:33Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Tobias Kieslich <tobias@justdreams.de>
 
 pkgname=libexif
-pkgver=0.6.16
+pkgver=0.6.17
 pkgrel=1
 pkgdesc="A library to parse an EXIF file and read the data from those tags"
 arch=(i686 x86_64)
@@ -12,11 +12,11 @@ url="http://sourceforge.net/projects/libexif"
 depends=('glibc')
 options=('!libtool')
 source=(http://downloads.sf.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('deee153b1ded5a944ea05d041d959eca')
+md5sums=('f7cf4e623a48c9a3b13f7f95f0a41015')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/libgcrypt/PKGBUILD b/abs/core-testing/libgcrypt/PKGBUILD
index f4ebfea..bcf31c8 100644
--- a/abs/core-testing/libgcrypt/PKGBUILD
+++ b/abs/core-testing/libgcrypt/PKGBUILD
@@ -1,23 +1,24 @@
-# $Id: PKGBUILD 3545 2008-06-24 17:33:25Z andyrtr $
+# $Id: PKGBUILD 12853 2008-09-22 17:17:27Z andyrtr $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=libgcrypt
-pkgver=1.4.1
-pkgrel=10
+pkgver=1.4.3
+pkgrel=2
 pkgdesc="a general purpose crypto library based on the code used"
 arch=(i686 x86_64)
 url="http://www.gnupg.org"
 license=('LGPL')
 groups=('base')
-depends=('libgpg-error>=1.6')
+depends=('libgpg-error>=1.6' 'texinfo')
 options=(!libtool)
 source=(#ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
 	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('26703ecef4bbe113b8e6a87572b80b32')
+md5sums=('46e50e811ed51f1e0e8dd677dded967d')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr --disable-padlock-support
+  cd ${srcdir}/${pkgname}-${pkgver}
+  ./configure --prefix=/usr --disable-padlock-support --disable-static
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${pkgdir} install || return 1
+  rm -f ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/core-testing/libgcrypt/libgcrypt.install b/abs/core-testing/libgcrypt/libgcrypt.install
new file mode 100644
index 0000000..86de0a5
--- /dev/null
+++ b/abs/core-testing/libgcrypt/libgcrypt.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gcrypt.info)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/libgl/PKGBUILD b/abs/core-testing/libgl/PKGBUILD
index 43e7c58..ce2faba 100644
--- a/abs/core-testing/libgl/PKGBUILD
+++ b/abs/core-testing/libgl/PKGBUILD
@@ -1,49 +1,40 @@
-# $Id: PKGBUILD 1895 2008-05-22 17:55:59Z jgc $
+# $Id: PKGBUILD 12994 2008-09-25 18:01:13Z jgc $
 # Maintainer: Alexander Baldeck <kth5@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=libgl
-pkgver=7.0.3
-pkgrel=2
+pkgver=7.2
+pkgrel=1
 pkgdesc="Mesa DRI OpenGL library and drivers"
 arch=(i686 x86_64)
 license=('LGPL')
 url="http://www.mesa3d.org"
-depends=('libxxf86vm' 'libdrm>=2.3' 'libxdamage')
-makedepends=('imake' 'glproto>=1.4.9' 'fixesproto' 'damageproto' 'pkgconfig')
+depends=('libdrm>=2.3.1' 'libxxf86vm' 'libxdamage' 'expat>=2.0.1')
+makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig')
 provides=('libgl-dri')
 replaces=('libgl-dri' 'libgl-mesa')
-source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2)
-md5sums=('e6e6379d7793af40a6bc3ce1bace572e')
+options=(!makeflags)
+source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
+	mesa-7.1-link-shared.patch)
+md5sums=('04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
   cd ${startdir}/src/Mesa-${pkgver}
-
-  CONFIG="linux-dri-x86"
-  if [ "${CARCH}" = "x86_64" ]; then
-    CONFIG="linux-dri-x86-64"
-    sed -i -e "s/lib64/lib/g" configs/${CONFIG}
-  fi
-
-  echo "EXTRA_LIB_PATH =" >> configs/${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS}" >> configs/${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> configs/${CONFIG}
-  rm -f include/GL/glut*h
-  echo "USING_EGL = 0" >> configs/${CONFIG}
-  echo "PROGRAM_DIRS =" >> configs/${CONFIG}
-  echo "MKDEP = makedepend" >> configs/${CONFIG}
-  echo "DRI_DIRS =" >> configs/${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> configs/${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> configs/${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> configs/${CONFIG}
-
-  make ${CONFIG} || return 1
-  install -m755 -d ${startdir}/pkg/usr
-  make INSTALL_DIR=${startdir}/pkg/usr install || return 1
-
-  rm -rf ${startdir}/pkg/usr/include
-
-  install -m755 -d ${startdir}/pkg/usr/lib/xorg/modules/extensions || return 1
-  cd ${startdir}/pkg/usr/lib/xorg/modules/extensions || return 1
-  ln -sf libGLcore.xorg libGLcore.so
-  ln -sf libglx.xorg libglx.so
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=swrast \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -rf ${pkgdir}/usr/include
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  install -m755 -d ${pkgdir}/usr/lib/xorg/modules/extensions
+  ln -sf libglx.xorg ${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so || return 1
 }
diff --git a/abs/core-testing/libgl/mesa-7.1-link-shared.patch b/abs/core-testing/libgl/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/libgl/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/libglade/PKGBUILD b/abs/core-testing/libglade/PKGBUILD
index fc10160..c0bfa29 100644
--- a/abs/core-testing/libglade/PKGBUILD
+++ b/abs/core-testing/libglade/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 13455 2008-09-27 11:03:58Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libglade
-pkgver=2.6.2
+pkgver=2.6.3
 pkgrel=1
 pkgdesc="Allows you to load glade interface files in a program at runtime"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('gtk2' 'libxml2')
+depends=('gtk2>=2.14.1' 'libxml2>=2.6.32')
 makedepends=('python' 'pkgconfig')
 options=('!libtool')
 install=glade.install
 source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.6/${pkgname}-${pkgver}.tar.bz2
 	libglade-2.0.1-nowarning.patch)
 url="http://www.gnome.org"
-md5sums=('da4f9d1c6cd1337f6ef5e2db768d8557' '4f879c0ce550004905aa0fb24f25c353')
+md5sums=('1c359860b1a0f369f0b6e3f96fd985c2' '4f879c0ce550004905aa0fb24f25c353')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/src/libglade-2.0.1-nowarning.patch || return 1
-  ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -Np1 -i ${srcdir}/libglade-2.0.1-nowarning.patch || return 1
+  ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  install -m755 libglade-convert ${startdir}/pkg/usr/bin/libglade-convert
+  make DESTDIR=${pkgdir} install || return 1
+  install -m755 libglade-convert ${pkgdir}/usr/bin/libglade-convert || return 1
 }
diff --git a/abs/core-testing/libglade/glade.install b/abs/core-testing/libglade/glade.install
index c98d2ed..a7f05c5 100644
--- a/abs/core-testing/libglade/glade.install
+++ b/abs/core-testing/libglade/glade.install
@@ -23,8 +23,3 @@ post_remove() {
   xmlcatalog --noout --del \
     /usr/share/xml/libglade/glade-2.0.dtd etc/xml/catalog
 }
-
-op=$1
-shift
-
-$op $*
diff --git a/abs/core-testing/libgsf/PKGBUILD b/abs/core-testing/libgsf/PKGBUILD
index 84f5edb..67aa465 100644
--- a/abs/core-testing/libgsf/PKGBUILD
+++ b/abs/core-testing/libgsf/PKGBUILD
@@ -1,25 +1,27 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22409 2008-12-26 18:58:32Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
 
 pkgname=libgsf
-pkgver=1.14.8
+pkgver=1.14.10
 pkgrel=1
 pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats."
 arch=(i686 x86_64)
 url="http://www.gnome.org/"
 license=('GPL' 'LGPL')
-depends=('libxml2' 'glib2>=2.16.1' 'bzip2')
+depends=('libxml2>=2.7.2' 'glib2>=2.18.3' 'bzip2')
 makedepends=('perlxml' 'pkgconfig' 'python')
 options=('!libtool')
 source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/1.14/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('09e4b6639be79fa888cabc751f73674f')
+md5sums=('f9b2f309089af683066ff0b319227e57')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  sed -i -e 's/gsf-gnome gsf-win32//' -e 's/thumbnailer//' Makefile.*
-  ./configure --prefix=/usr --disable-gtk-doc --without-gnome --without-bonobo
+  sed -i -e 's/gsf-gnome//' -e 's/thumbnailer//' Makefile.*
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+              --without-gnome-vfs --without-bonobo \
+	      --disable-static || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${startdir}/pkg install || return 1
   rm -f ${startdir}/pkg/usr{,/share}/man/man1/gsf-office-thumbnailer.1
 }
diff --git a/abs/core-testing/libidn/PKGBUILD b/abs/core-testing/libidn/PKGBUILD
index 6fb7d24..170388c 100644
--- a/abs/core-testing/libidn/PKGBUILD
+++ b/abs/core-testing/libidn/PKGBUILD
@@ -1,22 +1,30 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Eric Johnson <eric@archlinux.org>
+# $Id: PKGBUILD 19577 2008-11-27 10:01:45Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc.archlinux.org>
+# Contributor: Eric Johnson <eric.archlinux.org>
+
 pkgname=libidn
-pkgver=1.0
+pkgver=1.11
 pkgrel=1
 pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications"
-arch=(i686 x86_64)
 url="http://www.gnu.org/software/libidn/"
-license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
+license=('GPL3' 'LGPL2')
 depends=('glibc')
 makedepends=('pkgconfig')
 options=('!libtool')
-source=(ftp://alpha.gnu.org/pub/gnu/libidn/${pkgname}-${pkgver}.tar.gz)
-md5sums=('8a6a15dc061c0e17a97cb6b77d850e86')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+install=libidn.install
+md5sums=('8859b17928f84b899b19e72bfa1c6dbf')
+sha1sums=('08cffdcf9736f4ac61acc32e79a1d9672f640351')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${pkgdir} install || return 1
+
+  # handle info files
+  rm $pkgdir/usr/share/info/{dir,libidn-components.png} # nobody is missing a png I assume
+  gzip $pkgdir/usr/share/info/*
 }
diff --git a/abs/core-testing/libidn/libidn.install b/abs/core-testing/libidn/libidn.install
new file mode 100644
index 0000000..a0366eb
--- /dev/null
+++ b/abs/core-testing/libidn/libidn.install
@@ -0,0 +1,19 @@
+info_dir=/usr/share/info
+info_files=(libidn.info)
+
+post_install() {
+  for f in ${info_files[@]}; do
+    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+        post_install
+}
+
+pre_remove() {
+  for f in ${info_files[@]}; do
+    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
diff --git a/abs/core-testing/libpcap/PKGBUILD b/abs/core-testing/libpcap/PKGBUILD
index 0a586db..e5c11e2 100644
--- a/abs/core-testing/libpcap/PKGBUILD
+++ b/abs/core-testing/libpcap/PKGBUILD
@@ -1,44 +1,34 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: dorphell <dorphell@archlinux.org>
+# $Id: PKGBUILD 20200 2008-12-01 17:56:56Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
 
 pkgname=libpcap
-pkgver=0.9.8
-pkgrel=11
+pkgver=1.0.0
+pkgrel=1
 pkgdesc="A system-independent interface for user-level packet capture"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.tcpdump.org/"
 license=('BSD')
 groups=('base')
 depends=('glibc')
 makedepends=('flex')
-source=(http://www.sfr-fresh.com/unix/misc/libpcap-${pkgver}.tar.gz
-        libpcap-shared.patch)
-md5sums=('5208f24d0328ee7c20b52c43eaa9aa0e'
-         'b8a9c5e5cea0b89a8a7456c6c4d59db4')
-
-# This package has a strict SONAME that changes in EVERY MINOR
-# release. Whenever you feel like updating this package, DON'T,
-# it will break a number of essential system tools.
-# Again, for dummies: IF YOU UPDATE THIS PACKAGE DIRECTLY TO CORE,
-# I WILL PERSONALLY CHOP YOUR HEAD OFF!
+source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz)
+md5sums=('9ad1358c5dec48456405eac197a46d3d')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/libpcap-shared.patch || return 1
-  sed -i -e "s/@MAJOR@/`awk -F '.' '{ print $1 }' VERSION`/" \
-         -e "s/@MINOR@/`awk -F '.' '{ print $2 }' VERSION`/" \
-	 -e "s/@SUBMINOR@/`awk -F '.' '{ print $3 }' VERSION`/" \
-	 -e "s/@VERSION@/`cat VERSION`/" Makefile.in
-  
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr --enable-ipv6
-  DEFS="-g -D_U_=\"\" -fPIC -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" 
-  make -j1 DEFS="${DEFS}" || return 1
-  make DESTDIR=${startdir}/pkg install
-#  # backwards compatibility, programs often look for net/bpf.h
-  mkdir -p ${startdir}/pkg/usr/include/net
-  cd ${startdir}/pkg/usr/include/net
+  make || return 1
+  make shared || return 1
+  
+  install -d -m755 ${pkgdir}/usr/bin
+  make DESTDIR=${pkgdir} install install-shared || return 1
+  ln -s libpcap.so.1.0.0 ${pkgdir}/usr/lib/libpcap.so.1
+  ln -s libpcap.so.1.0.0 ${pkgdir}/usr/lib/libpcap.so
+  # backwards compatibility, programs often look for net/bpf.h
+  mkdir -p ${pkgdir}/usr/include/net
+  cd ${pkgdir}/usr/include/net
   ln -s ../pcap-bpf.h bpf.h
 
   #install the license
-  install -D -m644 $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+  install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
 }
diff --git a/abs/core-testing/libpciaccess/PKGBUILD b/abs/core-testing/libpciaccess/PKGBUILD
new file mode 100644
index 0000000..499f365
--- /dev/null
+++ b/abs/core-testing/libpciaccess/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=libpciaccess
+pkgver=0.10.5
+pkgrel=1
+pkgdesc="X11 PCI access library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('617bebf31e5685c83f935009aeae5f38')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/core-testing/libpng/ChangeLog b/abs/core-testing/libpng/ChangeLog
index 9612756..98aa66d 100644
--- a/abs/core-testing/libpng/ChangeLog
+++ b/abs/core-testing/libpng/ChangeLog
@@ -1,4 +1,8 @@
 
+2008-10-06  Douglas Soares de Andrade  <douglas@archlinux.org>
+
+	* Updated for i686: 1.2.32
+
 2008-08-23  Douglas Soares de Andrade  <douglas@archlinux.org>
 
 	* Updated for i686: 1.2.31
diff --git a/abs/core-testing/libpng/PKGBUILD b/abs/core-testing/libpng/PKGBUILD
index a67b300..12515ed 100644
--- a/abs/core-testing/libpng/PKGBUILD
+++ b/abs/core-testing/libpng/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 10073 2008-08-23 15:51:29Z douglas $
+# $Id: PKGBUILD 22148 2008-12-22 12:33:23Z pierre $
 # Maintainer: dorphell <dorphell@archlinux.org>
 # Maintainer: Travis Willard <travis@archlinux.org>
 # Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
 
 pkgname=libpng
-pkgver=1.2.31
+pkgver=1.2.34
 pkgrel=1
 pkgdesc="A collection of routines used to create PNG format graphics files"
 arch=('i686' 'x86_64')
@@ -12,19 +12,18 @@ url="http://www.libpng.org/pub/png/libpng.html"
 license=('custom')
 depends=('zlib')
 options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2
-        # http://littlesvr.ca/apng/diff/${pkgname}-${pkgver}-apng.patch
-	    ${pkgname}-${pkgver}-apng.patch )
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+        "http://hp.vector.co.jp/authors/VA013651/lib/libpng-${pkgver}-apng.patch.gz")
 options=('!libtool')
-
-md5sums=('78d2f8c4e0d64f8948819563587302d3'
-         'fab42a4ad4de6fcb87dcca6a7a19aefb')
+md5sums=('37362876feb21344fd3af1228527db0f'
+         'a7ee9fd9af34692b75eedd5b03b69ca9')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
 
   # Add animated PNG (apng) support
-  patch -Np0 -i $startdir/src/${pkgname}-${pkgver}-apng.patch || return 1
+  # see http://hp.vector.co.jp/authors/VA013651/freeSoftware/apng.html
+  patch -p1 -i $srcdir/libpng-${pkgver}-apng.patch || return 1
 
   libtoolize --force --copy || return 1
   aclocal || return 1
diff --git a/abs/core-testing/librsvg/PKGBUILD b/abs/core-testing/librsvg/PKGBUILD
index c4f4a11..6a702aa 100644
--- a/abs/core-testing/librsvg/PKGBUILD
+++ b/abs/core-testing/librsvg/PKGBUILD
@@ -1,28 +1,27 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 13073 2008-09-25 20:24:43Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=librsvg
-pkgver=2.22.2
+pkgver=2.22.3
 pkgrel=1
 pkgdesc="SAX-based renderer for SVG files into a GdkPixbuf"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('gtk2>=2.12.9' 'libcroco>=0.6.1' 'libgsf>=1.14.8')
+depends=('gtk2>=2.14.3' 'libcroco>=0.6.1' 'libgsf>=1.14.8')
 makedepends=('perlxml' 'pkgconfig')
 options=('!libtool')
 url="http://librsvg.sourceforge.net/"
 source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.22/${pkgname}-${pkgver}.tar.bz2)
 install=librsvg.install
-md5sums=('aae602677ce201b1a0ed6a0c18c207f2')
+md5sums=('c4ec4fdb2b1842e221ca39127e85682d')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --libexecdir=/usr/lib/${pkgname} \
               --with-croco \
 	      --disable-mozilla-plugin --with-svgz
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  rm -rf ${startdir}/pkg/usr/share/gtk-doc
-  rm -rf ${startdir}/pkg/usr/lib/mozilla
-  rm ${startdir}/pkg/usr/lib/gtk-2.0/*/{engines,loaders}/*.a
+  make DESTDIR="${pkgdir}" install
+  rm -rf "${pkgdir}/usr/lib/mozilla"
+  rm ${pkgdir}/usr/lib/gtk-2.0/*/{engines,loaders}/*.a
 }
diff --git a/abs/core-testing/librsvg/librsvg.install b/abs/core-testing/librsvg/librsvg.install
index 8a6dd5a..01eaab0 100644
--- a/abs/core-testing/librsvg/librsvg.install
+++ b/abs/core-testing/librsvg/librsvg.install
@@ -1,4 +1,3 @@
-# arg 1:  the new package version
 post_install() {
   #We need to update the pixbuf loaders to let GTK support SVG images
   usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
diff --git a/abs/core-testing/libtasn1/PKGBUILD b/abs/core-testing/libtasn1/PKGBUILD
index 9d0f14a..150c1dd 100644
--- a/abs/core-testing/libtasn1/PKGBUILD
+++ b/abs/core-testing/libtasn1/PKGBUILD
@@ -1,21 +1,26 @@
-# $Id: PKGBUILD 3687 2008-06-29 10:44:27Z jgc $
-# Maintainer: judd <jvinet@zeroflux.org>
+# $Id: PKGBUILD 22306 2008-12-25 18:56:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=libtasn1
-pkgver=1.4
+pkgver=1.7
 pkgrel=1
 pkgdesc="The ASN.1 library used in GNUTLS"
 arch=(i686 x86_64)
-license=('GPL' 'LGPL')
+license=('GPL3' 'LGPL')
 url="http://www.gnu.org/software/gnutls/"
-depends=('glibc')
+depends=('glibc' 'texinfo')
 options=('!libtool')
+install=libtasn1.install
 source=(ftp://ftp.gnutls.org/pub/gnutls/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('a733ecdfed3517910e627d24e050979f')
+md5sums=('ebfd69b3514d8e8830057f0e9df6a5f9')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+
+  rm -f "${pkgdir}/usr/share/info/dir"
+  gzip ${pkgdir}/usr/share/info/* || return 1
 }
diff --git a/abs/core-testing/libtasn1/libtasn1.install b/abs/core-testing/libtasn1/libtasn1.install
new file mode 100644
index 0000000..2d1ecc0
--- /dev/null
+++ b/abs/core-testing/libtasn1/libtasn1.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(libtasn1.info)
+
+post_install() {
+  for f in ${info_files[@]}; do
+    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for f in ${info_files[@]}; do
+    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
diff --git a/abs/core-testing/libtool/PKGBUILD b/abs/core-testing/libtool/PKGBUILD
index 965a282..f861926 100644
--- a/abs/core-testing/libtool/PKGBUILD
+++ b/abs/core-testing/libtool/PKGBUILD
@@ -1,21 +1,25 @@
-# $Id: PKGBUILD 1505 2008-05-12 10:28:03Z andyrtr $
+# $Id: PKGBUILD 12053 2008-09-08 14:37:58Z andyrtr $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=libtool
-pkgver=2.2.4
+pkgver=2.2.6a
 pkgrel=1
 pkgdesc="A generic library support script"
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.gnu.org/software/libtool"
+install=libtool.install
 groups=('base-devel')
-depends=('sh')
+depends=('sh' 'tar')
 source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.gz)
-md5sums=('0b87e84c7aad3b5e979bbe35312fd4c1')
+md5sums=('8ca1ea241cd27ff9832e045fe9afe4fd')
 options=('!libtool')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  #cd ${startdir}/src/${pkgname}-${pkgver}
+  cd ${startdir}/src/${pkgname}-2.2.6
   ./configure --prefix=/usr
   make || return 1
   make DESTDIR=${startdir}/pkg install
+
+  rm -f ${pkgdir}/usr/share/info/dir
 }
diff --git a/abs/core-testing/libtool/libtool.install b/abs/core-testing/libtool/libtool.install
new file mode 100644
index 0000000..1794742
--- /dev/null
+++ b/abs/core-testing/libtool/libtool.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(libtool.info  libtool.info-1  libtool.info-2)
+
+post_install() {
+  for file in ${filelist[@]}; do
+    install-info $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for file in ${filelist[@]}; do
+    install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+  done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/libx11/PKGBUILD b/abs/core-testing/libx11/PKGBUILD
index e69ed0a..d697a21 100644
--- a/abs/core-testing/libx11/PKGBUILD
+++ b/abs/core-testing/libx11/PKGBUILD
@@ -1,28 +1,26 @@
-# $Id: PKGBUILD 1882 2008-05-22 17:44:17Z jgc $
+# $Id: PKGBUILD 20482 2008-12-05 09:43:28Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor Jan de Groot <jgc@archlinux.org>
 pkgname=libx11
-pkgver=1.1.4
+pkgver=1.1.5
 pkgrel=2
 pkgdesc="X11 client-side library"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxau' 'libxdmcp' 'libxcb>=1.1' 'kbproto' 'inputproto' 'bigreqsproto')
-makedepends=('pkgconfig' 'xcmiscproto' 'xextproto' 'xf86bigfontproto' 'xtrans' \
-             'bigreqsproto' 'xorg-util-macros' 'autoconf' 'automake' 'libtool')
+depends=('libxcb>=1.1.90.1' 'kbproto>=1.0.3')
+makedepends=('xproto>=7.0.13' 'xextproto>=7.0.3' 'xf86bigfontproto>=1.1.2' 'xtrans>=1.2.1' 'kbproto>=1.0.3' 'inputproto>=1.4.4' 'xorg-util-macros')
 options=('!libtool')
 license=('custom:XFREE86')
 source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2
 	012_ru_RU_UTF-8_XLC_LOCALE.diff
 	xorg.sh)
-md5sums=('1469a5a8aa8d288dce6f4c45d2f68dc3'
+md5sums=('d1512d65dadd4f48c779d4749e7753a8'
          'c7e38a68b932ed557bc71979eed2a8a1'
-         'ea3f14c529072c8be061493763479800')
+         '942ff006e69e041f0307c1316e0dec5d')
 
 build() {
-  cd ${startdir}/src/libX11-${pkgver}
-  patch -Np1 -i ${startdir}/src/012_ru_RU_UTF-8_XLC_LOCALE.diff || return 1
-
+  cd ${srcdir}/libX11-${pkgver}
+  patch -Np1 -i ${srcdir}/012_ru_RU_UTF-8_XLC_LOCALE.diff || return 1
 
   libtoolize --force --copy || return 1
   aclocal || return 1
@@ -32,13 +30,12 @@ build() {
   ./configure --prefix=/usr \
               --with-xcb || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
 
-  install -d -m755 ${startdir}/pkg/etc/profile.d 
-  install -m755 ${startdir}/src/xorg.sh \
-                ${startdir}/pkg/etc/profile.d/ || return 1
+  install -m755 -d ${pkgdir}/etc/profile.d 
+  install -m755 ${srcdir}/xorg.sh \
+                ${pkgdir}/etc/profile.d/ || return 1
 
-  install -d -m755 ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 -D ${startdir}/src/libX11-${pkgver}/COPYING \
-                   ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
diff --git a/abs/core-testing/libx11/xorg.sh b/abs/core-testing/libx11/xorg.sh
index d3ade91..9b37312 100644
--- a/abs/core-testing/libx11/xorg.sh
+++ b/abs/core-testing/libx11/xorg.sh
@@ -13,7 +13,3 @@ if [ -z $XDG_CONFIG_DIRS ]; then
 else
 	export XDG_CONFIG_DIRS=/etc/xdg:$XDG_CONFIG_DIRS
 fi
-
-# temporarily loosen restrictions in libxcb to get java
-# application involving X to work.
-export  LIBXCB_ALLOW_SLOPPY_LOCK=true
diff --git a/abs/core-testing/libxaw/PKGBUILD b/abs/core-testing/libxaw/PKGBUILD
index 3b447d1..c1d71de 100644
--- a/abs/core-testing/libxaw/PKGBUILD
+++ b/abs/core-testing/libxaw/PKGBUILD
@@ -1,26 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 18578 2008-11-07 22:16:28Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=libxaw
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="X11 Athena Widget library"
 arch=(i686 x86_64)
 license=('custom:')
 url="http://xorg.freedesktop.org/"
-depends=('libxmu' 'libxpm' 'libxp')
+depends=('libxmu' 'libxpm')
 makedepends=('pkgconfig')
 options=('!libtool')
 source=(${url}/releases/individual/lib/libXaw-${pkgver}.tar.bz2)
+md5sums=('64e7782db4653cb57c7f7e660b2431c3')
 
 build() {
-  cd ${startdir}/src/libXaw-${pkgver}
-  ./configure --prefix=/usr --sysconfdir=/etc
+  cd "${srcdir}/libXaw-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 ${startdir}/src/libXaw-${pkgver}/COPYING \
-                ${startdir}/pkg/usr/share/licenses/${pkgname}/license.txt
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-md5sums=('73671d8f1cf36fdd81395328cc3539c9')
diff --git a/abs/core-testing/libxml2/PKGBUILD b/abs/core-testing/libxml2/PKGBUILD
index be9b8bc..8b8cb34 100644
--- a/abs/core-testing/libxml2/PKGBUILD
+++ b/abs/core-testing/libxml2/PKGBUILD
@@ -1,25 +1,26 @@
-# $Id: PKGBUILD 1153 2008-05-01 14:49:04Z jgc $
+# $Id: PKGBUILD 22385 2008-12-26 16:51:09Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=libxml2
-pkgver=2.6.32
+pkgver=2.7.2
 pkgrel=1
 pkgdesc="XML parsing library, version 2"
 arch=(i686 x86_64)
 license=('custom')
-depends=('zlib' 'readline')
-makedepends=('python>=2.5')
+depends=('zlib>=1.2.3.3' 'readline>=5.2-8' 'ncurses>=5.6-7')
+makedepends=('python')
 options=('!libtool')
-source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)
 url="http://www.xmlsoft.org/"
-md5sums=('2621d322c16f0257e30f0ff2b13384de')
+source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz
+	largefile64.patch)
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i ${srcdir}/largefile64.patch || return 1
   ./configure --prefix=/usr --with-threads --with-history || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/libxml2/largefile64.patch b/abs/core-testing/libxml2/largefile64.patch
new file mode 100644
index 0000000..29be827
--- /dev/null
+++ b/abs/core-testing/libxml2/largefile64.patch
@@ -0,0 +1,12 @@
+--- libxml2-2.6.32.dfsg.orig/libxml.h
++++ libxml2-2.6.32.dfsg/libxml.h
+@@ -13,6 +13,9 @@
+ #ifndef _LARGEFILE_SOURCE
+ #define _LARGEFILE_SOURCE
+ #endif
++#ifndef _LARGEFILE64_SOURCE
++#define _LARGEFILE64_SOURCE
++#endif
+ #ifndef _FILE_OFFSET_BITS
+ #define _FILE_OFFSET_BITS 64
+ #endif
diff --git a/abs/core-testing/lighttpd/PKGBUILD b/abs/core-testing/lighttpd/PKGBUILD
index db98bc4..ee4d780 100644
--- a/abs/core-testing/lighttpd/PKGBUILD
+++ b/abs/core-testing/lighttpd/PKGBUILD
@@ -1,13 +1,15 @@
+# $Id: PKGBUILD 17048 2008-10-24 16:27:19Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
 pkgname=lighttpd
 pkgver=1.4.20
-pkgrel=12
+pkgrel=2
 pkgdesc='a secure, fast, compliant and very flexible web-server'
 license=('custom')
 arch=('i686' 'x86_64')
 url="http://www.lighttpd.net/"
-#depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap')
-depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' )
-makedepends=('fcgi' 'libmysqlclient'  'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
+depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap')
+makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
 optdepends=('libxml2: mod_webdav' \
             'e2fsprogs: mod_webdav' \
             'lua: mod_cml/mod_magnet' \
@@ -15,11 +17,10 @@ optdepends=('libxml2: mod_webdav' \
             'sqlite3: mod_webdav' \
             'gdbm: mod_trigger_b4_dl' \
             )
-backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd' 'etc/lighttpd/auth-inc.conf')
+backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd')
 options=('!libtool' 'emptydirs')
-install='lighttpd.install'
 source=("http://www.lighttpd.net/download/lighttpd-${pkgver}.tar.bz2" \
-        'lighttpd.rc.d' 'lighttpd.logrotate.d' lighttpd.conf auth-inc.conf)
+        'lighttpd.rc.d' 'lighttpd.logrotate.d')
 
 md5sums=('ed6ee0bb714f393219a32768d86984d8'
          'bd690eee0d9e51857448770a151023b0'
@@ -34,8 +35,8 @@ build() {
 		--localstatedir=/var \
 		--libdir=/usr/lib/lighttpd \
 		--includedir=/usr/include/lighttpd \
-		--with-mysql --without-sqlite3 \
-		--without-ldap \
+		--with-mysql \
+		--with-ldap \
 		--with-attr \
 		--with-openssl \
 		--with-kerberos5 \
@@ -44,7 +45,7 @@ build() {
 		--with-webdav-locks \
 		--with-gdbm \
 		--with-memcache \
-		--without-lua || return 1
+		--with-lua || return 1
 	make || return 1
 	make DESTDIR=$pkgdir install || return 1
 
@@ -52,22 +53,17 @@ build() {
 	install -D -m644 ../lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd
 	install -d -m755 -o http -g http $pkgdir/var/run/lighttpd/
 	install -d -m755 -o http -g http $pkgdir/var/log/lighttpd/
-	
 
+	install -D -m644 doc/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
 
 	# set sane defaults
-	#sed -e 's|/srv/www/htdocs/|/srv/http/|' \
-	#    -e 's|/srv/www/|/srv/http/|' \
-	#    -e 's|#server.username            = "wwwrun"|server.username            = "http"|' \
-	#    -e 's|#server.groupname           = "wwwrun"|server.groupname           = "http"|' \
-	#    -e 's|#server.pid-file            = "/var/run/lighttpd.pid"|server.pid-file            = "/var/run/lighttpd/lighttpd.pid"|' \
-	#    -e 's|/usr/local/bin/php-cgi|/usr/bin/php-cgi|' \
-	#    -i ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1
-	install -D -m644 $startdir/src/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
-	install -D -m644 $startdir/src/auth-inc.conf $pkgdir/etc/lighttpd/auth-inc.conf
+	sed -e 's|/srv/www/htdocs/|/srv/http/|' \
+	    -e 's|/srv/www/|/srv/http/|' \
+	    -e 's|#server.username            = "wwwrun"|server.username            = "http"|' \
+	    -e 's|#server.groupname           = "wwwrun"|server.groupname           = "http"|' \
+	    -e 's|#server.pid-file            = "/var/run/lighttpd.pid"|server.pid-file            = "/var/run/lighttpd/lighttpd.pid"|' \
+	    -e 's|/usr/local/bin/php-cgi|/usr/bin/php-cgi|' \
+	    -i ${pkgdir}/etc/lighttpd/lighttpd.conf || return 1
+
 	install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
 }
-
-#changelog
-#remove ldap
-#add custom lighttpd.conf
diff --git a/abs/core-testing/mcpp/PKGBUILD b/abs/core-testing/mcpp/PKGBUILD
index 9d0afce..57dae67 100644
--- a/abs/core-testing/mcpp/PKGBUILD
+++ b/abs/core-testing/mcpp/PKGBUILD
@@ -1,27 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22398 2008-12-26 17:32:45Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=mcpp
-pkgver=2.6.4
-pkgrel=2
+pkgver=2.7.2
+pkgrel=1
 pkgdesc="Matsui's CPP implementation precisely conformed to standards"
 arch=(i686 x86_64)
-license=('custom:')
+license=('custom')
 url="http://mcpp.sourceforge.net"
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz \
-        mcpp-2.6.4-patch)
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz )
 depends=(glibc)
+md5sums=('512de48c87ab023a69250edc7a0c7b05')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np0 -i ${startdir}/src/mcpp-2.6.4-patch || return 1
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR="${pkgdir}" install || return 1
 
-  mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 ${startdir}/src/${pkgname}-${pkgver}/LICENSE \
-                ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  ln -sf ../doc/${pkgname}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
-md5sums=('c0f5aa9b13e36ea0f2ab9358c5d65153'
-         '80890eb2988d7e80964b814cf134f842')
diff --git a/abs/core-testing/mesa/PKGBUILD b/abs/core-testing/mesa/PKGBUILD
index 9d36715..72d100e 100644
--- a/abs/core-testing/mesa/PKGBUILD
+++ b/abs/core-testing/mesa/PKGBUILD
@@ -1,63 +1,46 @@
-# $Id: PKGBUILD 3486 2008-06-22 21:12:34Z jgc $
+# $Id: PKGBUILD 12996 2008-09-25 18:06:12Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=mesa
-pkgver=7.0.3
-pkgrel=3
+pkgver=7.2
+pkgrel=1
 pkgdesc="Mesa OpenGL library"
 arch=(i686 x86_64)
 license=('LGPL')
 url="http://mesa3d.sourceforge.net"
-depends=('libgl' 'glproto>=1.4.9' 'gcc-libs' 'libxt')
-makedepends=('imake' 'pkgconfig')
+depends=('libgl' 'libx11>=1.1.4-3' 'libxt' 'glproto>=1.4.9' 'gcc-libs>=4.3.1')
+makedepends=('pkgconfig' 'dri2proto>=1.1' 'libdrm>=2.3.1')
 conflicts=('mesa-apps')
 replaces=('mesa-apps')
-source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaDemos-${pkgver}.tar.bz2
-	ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2
-	mesa-6.5-apps-noglut.patch)
-md5sums=('e6e6379d7793af40a6bc3ce1bace572e'
-         '47fd6863621d3c9c7dbb870ab7f0c303'
-         '6ae05158e678f4594343f32c2ca50515'
-         'cc5a4ea4ea8de4425997fcda2a9d8648')
+source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
+	http://downloads.sourceforge.net/mesa3d/MesaDemos-${pkgver}.tar.bz2
+	ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2)
+md5sums=('04d379292e023df0b0266825cb0dbde5'
+         '22e03dc4038cd63f32c21eb60994892b'
+         '6ae05158e678f4594343f32c2ca50515')
 
 build() {
-  cd ${startdir}/src/Mesa-${pkgver}
-  patch -Np0 -i ${startdir}/src/mesa-6.5-apps-noglut.patch || return 1
-
-  unset CFLAGS
-  unset CXXFLAGS
-
-  CONFIG="linux-dri-x86"
-  if [ "${CARCH}" = "x86_64" ]; then
-    CONFIG="linux-dri-x86-64"
-    sed -i -e "s/lib64/lib/g" configs/${CONFIG}
-  fi
-  echo "EXTRA_LIB_PATH =" >> configs/${CONFIG}
-  echo "SRC_DIRS = glx/x11 glu glw" >> configs/${CONFIG}
-  rm -f include/GL/glut*h
-  echo "USING_EGL = 0" >> configs/${CONFIG}
-  echo "PROGRAM_DIRS =" >> configs/${CONFIG}
-  echo "MKDEP = makedepend" >> configs/${CONFIG}
-  echo "DRI_DIRS =" >> configs/${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> configs/${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> configs/${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> configs/${CONFIG}
+  cd ${srcdir}/Mesa-${pkgver}
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=swrast \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glut || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
 
-  make ${CONFIG} || return 1
-  install -m755 -d ${startdir}/pkg/usr
-  make INSTALL_DIR=${startdir}/pkg/usr install || return 1
-  install -m644 include/GL/*.h ${startdir}/pkg/usr/include/GL/ || return 1
+  install -m755 -d ${pkgdir}/usr/bin
+  install -m755 progs/xdemos/glx{gears,info} ${pkgdir}/usr/bin/ || return 1
 
-  rm -f ${startdir}/pkg/usr/lib/libGL.so*
-  cd progs/xdemos
-  make CFLAGS+="-I${startdir}/pkg/usr/include" glxinfo glxgears || return 1
-  install -m755 -d ${startdir}/pkg/usr/bin || return 1
-  install -m755 glxinfo glxgears ${startdir}/pkg/usr/bin/ || return 1
+  rm -f ${pkgdir}/usr/lib/libGL.so*
+  rm -rf ${pkgdir}/usr/lib/xorg
 
-  cd ${startdir}/src/gl-manpages-1.0.1
+  cd ${srcdir}/gl-manpages-1.0.1
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR=${pkgdir} install || return 1
 }
diff --git a/abs/core-testing/mesa/mesa-7.1-link-shared.patch b/abs/core-testing/mesa/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/mesa/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD b/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD
index fb3b755..7d24ae3 100644
--- a/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mytharchive/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mytharchive
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'libxmu' 'mysql-python' 'pil' 'dvdauthor')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
index 5a53093..34e64f2 100644
--- a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythbrowser
 pkgver=0.21
-pkgrel=2
+pkgrel=3
 pkgdesc="Mini web browser for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
@@ -13,10 +13,10 @@ depends=("mythtv>=${pkgver}" 'wget' 'libxvmc' 'kdelibs3')
 groups=('mythtv-extras')
 options=('!makeflags')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
    . /etc/profile.d/kde3.sh
 
diff --git a/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD b/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD
index cf7f43c..2639834 100644
--- a/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythcontrols/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythcontrols
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Experimental controls for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
@@ -12,11 +12,11 @@ license=('GPL')
 depends=("mythtv>=${pkgver}")
 options=('!makeflags')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythflix/PKGBUILD b/abs/core-testing/mythtv/stable/mythflix/PKGBUILD
index f613963..e9033ac 100644
--- a/abs/core-testing/mythtv/stable/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythflix/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythflix
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Netflix access plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}")
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD b/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD
index 76a66c5..3218bb4 100644
--- a/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythgallery/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythgallery
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Image gallery plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'libexif' 'libtiff')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythgame/PKGBUILD b/abs/core-testing/mythtv/stable/mythgame/PKGBUILD
index 33fb9a5..74a1e00 100644
--- a/abs/core-testing/mythtv/stable/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythgame/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythgame
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Emulation plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'zlib')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-$pkgver
+   cd $startdir/src/mythplugins
 	export QMAKESPEC='linux-g++'
    source /etc/profile.d/qt3.sh
 
diff --git a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
index fbbfbc4..73415c7 100644
--- a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythmusic
 pkgver=0.21
-pkgrel=5
+pkgrel=7
 pkgdesc="Music playing plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
@@ -13,11 +13,11 @@ depends=("mythtv>=${pkgver}" 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'lib
          'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \
 	 'libvisual-plugins' 'libvisual-projectm')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
    
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythnews/PKGBUILD b/abs/core-testing/mythtv/stable/mythnews/PKGBUILD
index 9133755..3288ce7 100644
--- a/abs/core-testing/mythtv/stable/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythnews/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythnews
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="News checking plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}")
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
    
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythphone/PKGBUILD b/abs/core-testing/mythtv/stable/mythphone/PKGBUILD
index 24cd04f..b093caa 100644
--- a/abs/core-testing/mythtv/stable/mythphone/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythphone/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythphone
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Plugin that allows phone calls to be made to MythTv"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}")
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
    
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD b/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD
index a56292c..854b2e3 100644
--- a/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythsmolt/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythsmolt
 pkgver=0.21
-pkgrel=3
+pkgrel=4
 pkgdesc="mythsmolt, a hardware profileing tool"
 arch=('i686' 'x86_64')
 url="http://www.mythvantage.com"
diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
index 3cd45a8..8ba8102 100644
--- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.21
-pkgrel=17
+pkgrel=19
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \
@@ -9,7 +9,7 @@ backup=(etc/mythtv/mythbackend.conf etc/mythtv/mysql.txt)
 source=(ftp://ftp.knoppmyth.net/R6/sources/${pkgname}-${pkgver}-fixes.tar.bz2 \
 	mythbackend myththemedmenu.cpp.patch myththemedmenu.h.patch  smolt_jump.patch  )
 
-#md5sums=('08506f0c5120c072085b6995f529167a' '7ef6de58240e7aad389a0b13d91b1cf6'\
+#md5sums=('6e8180a0122d5fe335aa5e4b036ffc1d' '7ef6de58240e7aad389a0b13d91b1cf6'\
 #         'a0ecb7f476cb71c0c1ac90d349fc7695')
 
 license=('GPL2')
@@ -19,7 +19,7 @@ url="http://www.mythtv.org/"
 install=mythtv.install
 
 build() {
-   cd $startdir/src/${pkgname}-${pkgver} || return 1
+	cd $startdir/src/${pkgname}-${pkgver} || return 1
 
 #apply patches 
 	 patch -p0 < ../myththemedmenu.cpp.patch
diff --git a/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch b/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch
index 19955dc..ac42e90 100644
--- a/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch
+++ b/abs/core-testing/mythtv/stable/mythtv/menu-xml/library.xml.patch
@@ -1,21 +1,17 @@
---- library.xml.orig	2008-10-02 22:46:30.000000000 +0000
-+++ library.xml	2008-07-02 04:05:15.000000000 +0000
-@@ -117,13 +117,11 @@
-      <depends>mythFM mythfm</depends>
+--- library.xml.orig	2009-01-09 03:55:53.000000000 +0000
++++ library.xml	2009-01-09 04:08:30.000000000 +0000
+@@ -118,11 +118,9 @@
     </button>
  
--   <button>
+    <button>
 -     <type>STREAM</type>
--     <text>Play online streams</text>
+-     <text>Play Online Streams</text>
 -     <text lang="HE">נגן מדיה מכוונת</text>
 -     <action>PLUGIN mythstream</action>
 -     <depends>mythstream</depends>
--   </button>
-+     <button>
 +       <type>STREAM</type>
 +       <text>Online Streams</text>
 +       <action>MENU is.xml</action>
-+     </button>
+    </button>
  
     <button>
-      <type>IMAGES</type>
diff --git a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
index 21f2a22..a1bab3f 100644
--- a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythvideo
 pkgver=0.21
-pkgrel=2
+pkgrel=3
 pkgdesc="Video playback and browsing plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
@@ -12,12 +12,12 @@ license=('GPL')
 depends=("mythtv>=${pkgver}" 'mplayer' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2"\
 	mtd)
-md5sums=('af20a78ac66719feddf9a39f1a799ded' '476c12ba074794ad7f4ae092bdf949d6')
+md5sums=('00ee70be781b9af5913f046525d79ab9' '476c12ba074794ad7f4ae092bdf949d6')
 replaces=('mythdvd')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
    
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythweather/PKGBUILD b/abs/core-testing/mythtv/stable/mythweather/PKGBUILD
index ce2894a..42e9dc1 100644
--- a/abs/core-testing/mythtv/stable/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweather/PKGBUILD
@@ -4,18 +4,18 @@
 
 pkgname=mythweather
 pkgver=0.21
-pkgrel=1
+pkgrel=2
 pkgdesc="Weather checking plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'wget')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 
 build() {
-   cd $startdir/src/mythplugins-${pkgver}
+   cd $startdir/src/mythplugins
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
index 6474b01..d5ddefb 100644
--- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythweb
 pkgver=0.21
-pkgrel=8
+pkgrel=9
 pkgdesc="Web interface for MythTV's backend"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
@@ -8,7 +8,7 @@ license=('GPL')
 depends=("mythtv>=${pkgver}" 'lighttpd' 'php')
 install=mythweb.install
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-md5sums=('af20a78ac66719feddf9a39f1a799ded')
+md5sums=('00ee70be781b9af5913f046525d79ab9')
 groups=('mythtv-extras')
 DOCROOT=/data/srv/httpd/htdocs/mythweb
 
@@ -21,7 +21,7 @@ build() {
 #   tar -zxvf $startdir/patch/icons.tar.gz
 ###
 
-   cp -r $startdir/src/mythplugins-$pkgver/$pkgname/* $startdir/pkg/$DOCROOT
+   cp -r $startdir/src/mythplugins/$pkgname/* $startdir/pkg/$DOCROOT
 #   cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/$DOCROOT
    rm $startdir/pkg/srv/$DOCROOT/README
    chown -R http:users $startdir/pkg/$DOCROOT
diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD
index e879abe..af98000 100644
--- a/abs/core-testing/nvidia-71xx/PKGBUILD
+++ b/abs/core-testing/nvidia-71xx/PKGBUILD
@@ -3,8 +3,8 @@
 
 pkgname=nvidia-71xx
 pkgver=71.86.06
-_kernver='2.6.26-ARCH'
-pkgrel=3
+_kernver='2.6.27-ARCH'
+pkgrel=4
 pkgdesc="NVIDIA legacy drivers for kernel26, 71xx branch"
 arch=(i686 x86_64)
 [ "$CARCH" = "i686"   ] && ARCH=x86
diff --git a/abs/core-testing/nvidia-71xx/nvidia-71xx.install b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
index 18b7435..9956ea8 100644
--- a/abs/core-testing/nvidia-71xx/nvidia-71xx.install
+++ b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
@@ -1,6 +1,6 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION  > /dev/null 2>&1		 
 }
 
@@ -13,7 +13,7 @@ post_upgrade() {
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION	 > /dev/null 2>&1
   rmmod nvidia >/dev/null 2>&1
 }
diff --git a/abs/core-testing/nvidia-96xx-utils/PKGBUILD b/abs/core-testing/nvidia-96xx-utils/PKGBUILD
index b745a3c..749dc08 100644
--- a/abs/core-testing/nvidia-96xx-utils/PKGBUILD
+++ b/abs/core-testing/nvidia-96xx-utils/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 5959 2008-07-21 20:38:14Z thomas $
+# $Id: PKGBUILD 18827 2008-11-09 14:01:28Z jgc $
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Contributor: James Rayner <iphitus@gmail.com>
 
 pkgname=nvidia-96xx-utils
-pkgver=96.43.07
+pkgver=96.43.09
 pkgrel=1
 pkgdesc="NVIDIA legacy drivers utilities and libraries, 96xx branch."
 arch=(i686 x86_64)
@@ -16,9 +16,9 @@ conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-utils' \
            'nvidia-71xx-utils' 'nvidia-legacy-utils')
 provides=('libgl')
 install=nvidia-96xx.install
-source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \
+source=(http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \
         supported-cards.txt)
-md5sums=('8fa2b7c5e4629850d4bd33033ec46166'
+md5sums=('758c739114b81ea2cb7da7c22ab80a7e'
          '6363d7e494d33729609540088e33e73f')
 [ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1'
          '6363d7e494d33729609540088e33e73f')
@@ -31,14 +31,14 @@ build()
   sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
   cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/
 
-  mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,man/man1}
+  mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1}
   mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers}
   mkdir -p $startdir/pkg/usr/share/licenses/nvidia-96xx/
   
   install lib/{libGLcore.so.${pkgver},libGL.so.${pkgver},libnvidia-cfg.so.${pkgver},tls/libnvidia-tls.so.${pkgver}} \
        $startdir/pkg/usr/lib/ || return 1
-  install -m644 share/man/man1/* $startdir/pkg/usr/man/man1/ || return 1
-  rm $startdir/pkg/usr/man/man1/nvidia-installer.1.gz || return 1
+  install -m644 share/man/man1/* $startdir/pkg/usr/share/man/man1/ || return 1
+  rm $startdir/pkg/usr/share/man/man1/nvidia-installer.1.gz || return 1
   install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1
   install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1
   # fix nvidia .desktop file
diff --git a/abs/core-testing/nvidia-96xx/PKGBUILD b/abs/core-testing/nvidia-96xx/PKGBUILD
index 3ccbbfe..0041d95 100644
--- a/abs/core-testing/nvidia-96xx/PKGBUILD
+++ b/abs/core-testing/nvidia-96xx/PKGBUILD
@@ -1,26 +1,23 @@
-# $Id: PKGBUILD 14780 2008-10-10 15:35:36Z thomas $
+# $Id: PKGBUILD 19057 2008-11-14 11:41:03Z pierre $
 # Maintainer : Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=nvidia-96xx
-pkgver=96.43.07
-_kernver='2.6.26-ARCH'
-pkgrel=6
+pkgver=96.43.09
+_kernver='2.6.27-ARCH'
+pkgrel=1
 pkgdesc="NVIDIA legacy drivers for kernel26, 96xx branch"
 arch=(i686 x86_64)
 license=('custom:NVIDIA')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.26' 'kernel26<2.6.28' 'nvidia-96xx-utils')
+depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'nvidia-96xx-utils')
 conflicts=('nvidia' 'nvidia-71xx' 'nvidia-legacy')
 install=nvidia-96xx.install
 license=('custom')
-source=(http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run
-        NVIDIA_173.14.12_2.6.27.patch)
-md5sums=('8fa2b7c5e4629850d4bd33033ec46166'
-         'cd4a68b5a88be6976b90cd0df6bfe89e')
-[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1'
-                                    'cd4a68b5a88be6976b90cd0df6bfe89e')
+source=(http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run)
+md5sums=('758c739114b81ea2cb7da7c22ab80a7e')
+[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1')
 
 build()
 {
@@ -29,9 +26,6 @@ build()
   sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only
   cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0
   
-  # Any extra patches are applied in here...
-  patch -Np1 -i ../NVIDIA_173.14.12_2.6.27.patch || return 1
-
   cd usr/src/nv/
   ln -s Makefile.kbuild Makefile
   make SYSSRC=/lib/modules/$_kernver/build module || return 1
diff --git a/abs/core-testing/nvidia-96xx/nvidia-96xx.install b/abs/core-testing/nvidia-96xx/nvidia-96xx.install
index dbbec39..dfded65 100644
--- a/abs/core-testing/nvidia-96xx/nvidia-96xx.install
+++ b/abs/core-testing/nvidia-96xx/nvidia-96xx.install
@@ -1,6 +1,6 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION  > /dev/null 2>&1		 
 }
 
@@ -13,7 +13,7 @@ post_upgrade() {
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	 
 }
 
diff --git a/abs/core-testing/nvidia-utils/PKGBUILD b/abs/core-testing/nvidia-utils/PKGBUILD
index d1058c4..384086a 100644
--- a/abs/core-testing/nvidia-utils/PKGBUILD
+++ b/abs/core-testing/nvidia-utils/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 7914 2008-08-05 08:01:00Z tpowa $
+# $Id: PKGBUILD 19054 2008-11-14 11:36:20Z pierre $
 # Maintainer: Thomas Baechler <thomas@archlinux.org>
 # Contributor: James Rayner <iphitus@gmail.com>
 
 pkgname=nvidia-utils
-pkgver=173.14.12
-pkgrel=5
+pkgver=177.82
+pkgrel=1
 pkgdesc="NVIDIA drivers utilities and libraries."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86 	 
@@ -18,9 +18,9 @@ license=('custom')
 install=nvidia.install
 source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \
         supported-cards.txt)
-md5sums=('76b8eba1b14fc273a1a4044705b0aa56'
+md5sums=('882f34a662f0175682fdc4a9bec909ba'
          'bf8d68d66757096c3ab17653230bf2a8')
-[ "$CARCH" = "x86_64" ] && md5sums=('8675e4ca65033b343c8c77b2ce82e71d'
+[ "$CARCH" = "x86_64" ] && md5sums=('6a6d04411529c8d7616deee3d68c5346'
                         	    'bf8d68d66757096c3ab17653230bf2a8')
 
 options=(docs !strip)
diff --git a/abs/core-testing/nvidia/PKGBUILD b/abs/core-testing/nvidia/PKGBUILD
index 0814d77..b1a5f33 100644
--- a/abs/core-testing/nvidia/PKGBUILD
+++ b/abs/core-testing/nvidia/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 8443 2008-08-11 05:11:22Z tpowa $
+# $Id: PKGBUILD 19051 2008-11-14 11:33:00Z pierre $
 # Maintainer : Thomas Baechler <thomas@archlinux.org>
 
 pkgname=nvidia
-pkgver=173.14.12
-_kernver='2.6.26-ARCH'
-pkgrel=4
+pkgver=177.82
+_kernver='2.6.27-ARCH'
+pkgrel=1
 pkgdesc="NVIDIA drivers for kernel26."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.26.2-1' 'kernel26<2.6.27' 'nvidia-utils')
+depends=('kernel26>=2.6.27' 'kernel26<2.6.28' 'nvidia-utils')
 conflicts=('nvidia-96xx' 'nvidia-71xx' 'nvidia-legacy')
 license=('custom')
 install=nvidia.install
 source=(http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run)
-md5sums=('76b8eba1b14fc273a1a4044705b0aa56')
-[ "$CARCH" = "x86_64" ] && md5sums=('8675e4ca65033b343c8c77b2ce82e71d')
+md5sums=('882f34a662f0175682fdc4a9bec909ba')
+[ "$CARCH" = "x86_64" ] && md5sums=('6a6d04411529c8d7616deee3d68c5346')
 
 build()
 {
diff --git a/abs/core-testing/nvidia/nvidia.install b/abs/core-testing/nvidia/nvidia.install
index dbbec39..dfded65 100644
--- a/abs/core-testing/nvidia/nvidia.install
+++ b/abs/core-testing/nvidia/nvidia.install
@@ -1,6 +1,6 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION  > /dev/null 2>&1		 
 }
 
@@ -13,7 +13,7 @@ post_upgrade() {
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	 
 }
 
diff --git a/abs/core-testing/openexr/PKGBUILD b/abs/core-testing/openexr/PKGBUILD
index 1c92fbb..c71f10b 100644
--- a/abs/core-testing/openexr/PKGBUILD
+++ b/abs/core-testing/openexr/PKGBUILD
@@ -1,24 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 17480 2008-10-30 16:52:29Z pierre $
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=openexr
-pkgver=1.4.0a
-pkgrel=2
-depends=('mesa' 'libxext' 'libxft' 'fltk')
-makedepends=('xproto')
+pkgver=1.6.1
+pkgrel=1
+depends=('zlib' 'ilmbase')
 pkgdesc="openexr library for EXR images"
 arch=(i686 x86_64)
-options=(!libtool)
-source=(http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz gcc43.patch)
+options=('!libtool')
+license=('custom')
+source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz" 'gcc43.patch')
 url="http://www.openexr.org"
+md5sums=('11951f164f9c872b183df75e66de145a' '7c83ee3d69ad688142e7de63cb68e70a')
 
 build() {
-  cd $startdir/src/$pkgname-1.4.0
-   # gcc4 fix
-  #patch -Np1 -i ../openexr-gcc4.patch
-  patch -Np1 -i ../gcc43.patch
+  cd $startdir/src/$pkgname-$pkgver
+  patch -p1 -i $srcdir/gcc43.patch || return 1
   ./configure --prefix=/usr
   make || return 1
   make DESTDIR=$startdir/pkg install
+  install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
 }
-md5sums=('d0a4b9a930c766fa51561b05fb204afe' 'd972a8ea4296762ea30a3dc7de2208ac')
diff --git a/abs/core-testing/openexr/gcc43.patch b/abs/core-testing/openexr/gcc43.patch
index 08ae699..3624872 100644
--- a/abs/core-testing/openexr/gcc43.patch
+++ b/abs/core-testing/openexr/gcc43.patch
@@ -1,21 +1,22 @@
---- a/exrenvmap/main.cpp
-+++ b/exrenvmap/main.cpp
-@@ -46,6 +46,8 @@
+diff -Nura openexr-1.6.1/exrenvmap/main.cpp openexr-1.6.1.new/exrenvmap/main.cpp
+--- openexr-1.6.1/exrenvmap/main.cpp	2007-04-25 03:07:51.000000000 +0200
++++ openexr-1.6.1.new/exrenvmap/main.cpp	2008-10-30 17:18:13.000000000 +0100
+@@ -45,6 +45,7 @@
+ #include <iostream>
  #include <exception>
  #include <stdlib.h>
++#include <string.h>
  
-+#include <cstring>
-+
  using namespace Imf;
  using namespace std;
- 
---- a/exrmaketiled/main.cpp
-+++ b/exrmaketiled/main.cpp
-@@ -47,6 +47,8 @@
+diff -Nura openexr-1.6.1/exrmaketiled/main.cpp openexr-1.6.1.new/exrmaketiled/main.cpp
+--- openexr-1.6.1/exrmaketiled/main.cpp	2007-04-25 03:08:45.000000000 +0200
++++ openexr-1.6.1.new/exrmaketiled/main.cpp	2008-10-30 17:18:40.000000000 +0100
+@@ -46,6 +46,7 @@
+ #include <exception>
  #include <string>
  #include <stdlib.h>
++#include <string.h>
  
-+#include <cstring>
-+
  using namespace Imf;
- using namespace std; 
+ using namespace std;
diff --git a/abs/core-testing/openssh/PKGBUILD b/abs/core-testing/openssh/PKGBUILD
index 523544f..3313676 100644
--- a/abs/core-testing/openssh/PKGBUILD
+++ b/abs/core-testing/openssh/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 3735 2008-06-30 20:01:30Z andyrtr $
+# $Id: PKGBUILD 20515 2008-12-05 12:08:00Z allan $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 
 pkgname=openssh
-pkgver=5.0p1
+pkgver=5.1p1
 pkgrel=2
 #_gsskexver=20080404
 pkgdesc='A Secure SHell server/client'
@@ -15,10 +15,8 @@ depends=('openssl>=0.9.8g' 'zlib' 'pam' 'tcp_wrappers' 'heimdal>=1.2-1')
 source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$pkgname-$pkgver.tar.gz
         sshd sshd.confd sshd.pam)
         #http://www.sxw.org.uk/computing/patches/$pkgname-$pkgver-gsskex-$_gsskexver.patch
-md5sums=('1f1dfaa775f33dd3328169de9bdc292a'
-         'd9ee5e0a0d143689b3d6f11454a2a892'
-         'e2cea70ac13af7e63d40eb04415eacd5'
-         '1c7c2ea8734ec7e3ca58d820634dc73a')
+md5sums=('03f2d0c1b5ec60d4ac9997a146d2faec' 'd9ee5e0a0d143689b3d6f11454a2a892'
+         'e2cea70ac13af7e63d40eb04415eacd5' '1c7c2ea8734ec7e3ca58d820634dc73a')
 
 build() {
   cd $startdir/src/$pkgname-$pkgver
@@ -49,13 +47,17 @@ build() {
   install -D -m755 contrib/ssh-copy-id $startdir/pkg/usr/bin/ssh-copy-id
   install -D -m644 contrib/ssh-copy-id.1  $startdir/pkg/usr/man/man1/ssh-copy-id.1
 
-  #adjust our config files
+  i# sshd_config
   sed -i \
     -e 's|^#ListenAddress 0.0.0.0|ListenAddress 0.0.0.0|g' \
     -e 's|^#UsePAM no|UsePAM yes|g' \
     -e 's|^#ChallengeResponseAuthentication yes|ChallengeResponseAuthentication no|g' \
     $startdir/pkg/etc/ssh/sshd_config
-  sed -i -e 's|^# Host \*|Host *|g' $startdir/pkg/etc/ssh/ssh_config
   echo "HashKnownHosts yes" >>  $startdir/pkg/etc/ssh/ssh_config
   echo "StrictHostKeyChecking ask" >>  $startdir/pkg/etc/ssh/ssh_config
+
+  #ssh_config
+  sed -i \
+    -e 's|^# Host \*|Host *|g' \
+    $startdir/pkg/etc/ssh/ssh_config
 }
diff --git a/abs/core-testing/openssl/PKGBUILD b/abs/core-testing/openssl/PKGBUILD
index ec3fe68..c52c9aa 100644
--- a/abs/core-testing/openssl/PKGBUILD
+++ b/abs/core-testing/openssl/PKGBUILD
@@ -1,28 +1,30 @@
-# $Id: PKGBUILD 9446 2008-08-17 18:04:42Z pierre $
+# $Id: PKGBUILD 21679 2008-12-14 17:14:03Z pierre $
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
 pkgname=openssl
-pkgver=0.9.8h
-pkgrel=13
+pkgver=0.9.8i
+pkgrel=4
 pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
 arch=('i686' 'x86_64')
 url='http://www.openssl.org'
 license=('custom:BSD')
-groups=('base')
-depends=('glibc')
+depends=('zlib' 'perl')
+optdepends=('ca-certificates')
 options=('!makeflags')
 source=("http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz" \
-        'http://www.linuxfromscratch.org/patches/blfs/svn/openssl-0.9.8g-fix_manpages-1.patch')
-md5sums=('7d3d41dafc76cf2fcb5559963b5783b3'
+        'http://www.linuxfromscratch.org/patches/blfs/svn/openssl-0.9.8i-fix_manpages-1.patch')
+md5sums=('561e00f18821c74b2b86c8c7786f9d8b'
          '04a6a88c2ee4badd4f8649792b73eaf3')
 
 build() {
-	cd $startdir/src/$pkgname-$pkgver
+	cd $srcdir/$pkgname-$pkgver
 
-	patch -p1 -i ../openssl-0.9.8g-fix_manpages-1.patch  || return 1
-	./config --prefix=/usr --openssldir=/etc/ssl shared
+	patch -p1 -i $srcdir/openssl-0.9.8i-fix_manpages-1.patch  || return 1
+	./config --prefix=/usr --openssldir=/etc/ssl shared zlib-dynamic -Wa,--noexecstack
 
 	make || return 1
-	make INSTALL_PREFIX=$startdir/pkg MANDIR=/usr/share/man install
+	make test  || return 1
+	make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
 
-	install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+	install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
 }
diff --git a/abs/core-testing/pam/PKGBUILD b/abs/core-testing/pam/PKGBUILD
index 4bdca6a..0750e52 100644
--- a/abs/core-testing/pam/PKGBUILD
+++ b/abs/core-testing/pam/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 3761 2008-06-30 20:27:30Z andyrtr $
+# $Id: PKGBUILD 17251 2008-10-27 08:14:27Z jgc $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=pam
-pkgver=1.0.1
-pkgrel=11
+pkgver=1.0.2
+pkgrel=2
 pkgdesc="PAM (Pluggable Authentication Modules) library"
 arch=(i686 x86_64)
 license=('GPL2')
 url="http://www.kernel.org/pub/linux/libs/pam/"
 groups=('base')
 depends=('glibc' 'db>=4.7' 'cracklib')
+makedepends=('flex')
 backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/pam.d/other etc/default/passwd etc/environment)
 source=(http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-$pkgver.tar.bz2 \
-        ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.1.tar.bz2 \
+        ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.6.tar.bz2 \
         other)
 options=('!libtool' '!emptydirs')
-md5sums=('1c75f81bd44c5da93014992820917847'
-         '08d3bc1940897b5dfcbe2f51dd979ad0'
-         '6e6c8719e5989d976a14610f340bd33a')
+md5sums=('fc5e35645b75befae28c88b711b28ffb'
+         'e2788389a6c59224110a45fcff30e02b'
+	 '6e6c8719e5989d976a14610f340bd33a')
 
 build() {
   cd $startdir/src/Linux-PAM-$pkgver
@@ -26,7 +27,7 @@ build() {
   install -D -m644 ../other $startdir/pkg/etc/pam.d/other
   # build pam_unix2 module
   # source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2
-  cd $startdir/src/pam_unix2-2.1
+  cd $startdir/src/pam_unix2-2.6
   ./configure
   make || return 1
   make DESTDIR=$startdir/pkg install
diff --git a/abs/core-testing/pango/PKGBUILD b/abs/core-testing/pango/PKGBUILD
index 5284f02..afa7a8f 100644
--- a/abs/core-testing/pango/PKGBUILD
+++ b/abs/core-testing/pango/PKGBUILD
@@ -1,24 +1,24 @@
-# $Id: PKGBUILD 4025 2008-07-02 18:01:45Z jgc $ 
+# $Id: PKGBUILD 22043 2008-12-21 12:14:05Z jgc $ 
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=pango
-pkgver=1.20.5
+pkgver=1.22.4
 pkgrel=1
 pkgdesc="A library for layout and rendering of text"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('glib2>=2.16.4' 'cairo>=1.6.4' 'libxft>=2.1.12' 'libthai>=0.1.9')
+depends=('glib2>=2.18.3' 'cairo>=1.8.6' 'libxft>=2.1.13' 'libthai>=0.1.9')
 makedepends=('pkgconfig' 'libxt')
 options=('!libtool' '!emptydirs')
 install=pango.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.20/${pkgname}-${pkgver}.tar.bz2)
-url="http://www.gtk.org/"
-md5sums=('052b60a12f6b2eb4f251ab961f2b2b84')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.22/${pkgname}-${pkgver}.tar.bz2)
+url="http://www.pango.org/"
+md5sums=('7c3f3748052799746d73c6d3a0cc1205')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr --sysconfdir=/etc \
-              --localstatedir=/var --without-qt || return 1
+              --localstatedir=/var || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/pango/bgo563356.patch b/abs/core-testing/pango/bgo563356.patch
new file mode 100644
index 0000000..226fd0c
--- /dev/null
+++ b/abs/core-testing/pango/bgo563356.patch
@@ -0,0 +1,305 @@
+diff -aur old/ChangeLog new/ChangeLog
+--- old/ChangeLog	2008-12-06 14:35:33.037390818 +0800
++++ new/ChangeLog	2008-12-06 14:35:11.475339336 +0800
+@@ -1,3 +1,39 @@
++2008-12-05  Behdad Esfahbod  <behdad@gnome.org>
++
++	Bug 563356 – The input area of firefox and the blank width after text
++	in gnome-menu was stretched too wide, under pango-1.22.3
++
++	* docs/tmpl/fonts.sgml:
++	* pango/pango-impl-utils.h:
++	* pango/pangocairo-atsuifont.c
++	(pango_cairo_atsui_font_create_metrics_for_context):
++	* pango/pangocairo-win32font.c
++	(pango_cairo_win32_font_create_metrics_for_context):
++	* pango/pangofc-font.c (pango_fc_font_create_metrics_for_context):
++	For approximate_char_width calculation take each char's width into
++	account.  That is, do a weighted average instead of uniform average.
++	g_unichar_iszerowidth() chars count as 0, g_unichar_iswide() chars
++	count 2, and the rest count as 1.  Pretty much wcwidth() behavior.
++	See bug report for rationale.
++
++2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
++
++	Bug 562574 – Pangocariowin32 is leaking every cairo font it ever
++	creates
++
++	* pango/pangocairo-atsuifont.c (pango_cairo_atsui_font_finalize):
++	* pango/pangocairo-win32font.c (pango_cairo_win32_font_finalize):
++	Finalize shared pangocairo font resources.  Oops!
++
++	* pango/pangocairo-font.c (_pango_cairo_font_private_finalize):
++	Protect against multiple calls to finalize.  This is practiced by the
++	pangocairo-fcfont when a font is shutdown and then finalized.
++
++2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
++
++	* examples/cairotwisted.c (parametrize_path), (point_on_path):
++	Handle close_path correctly.
++
+ 2008-11-23  Behdad Esfahbod  <behdad@gnome.org>
+ 
+ 	* === Released 1.22.3 ===
+diff -aur old/docs/tmpl/fonts.sgml new/docs/tmpl/fonts.sgml
+--- old/docs/tmpl/fonts.sgml	2008-12-06 14:35:11.450807479 +0800
++++ new/docs/tmpl/fonts.sgml	2008-12-06 14:34:53.771786070 +0800
+@@ -441,7 +441,10 @@
+ @descent: the distance from the baseline to the lowest point of the glyphs of
+ 	 the font. This is positive in practically all fonts.
+ @approximate_char_width: approximate average width of the regular glyphs of
+-         the font.
++         the font.  Note that for this calculation, East Asian characters
++	 (those passing g_unichar_iswide()) are counted as double-width.
++	 This produces a more uniform value for this measure across languages
++	 and results in more uniform and more expected UI sizes.
+ @approximate_digit_width: approximate average width of the glyphs for digits
+          of the font.
+ @underline_position: position of the underline. This is normally negative.
+diff -aur old/examples/cairotwisted.c new/examples/cairotwisted.c
+--- old/examples/cairotwisted.c	2008-12-06 14:35:32.900725834 +0800
++++ new/examples/cairotwisted.c	2008-12-06 14:35:11.264059243 +0800
+@@ -216,7 +216,7 @@
+ parametrize_path (cairo_path_t *path)
+ {
+   int i;
+-  cairo_path_data_t *data, current_point;
++  cairo_path_data_t *data, last_move_to, current_point;
+   parametrization_t *parametrization;
+ 
+   parametrization = malloc (path->num_data * sizeof (parametrization[0]));
+@@ -226,8 +226,13 @@
+     parametrization[i] = 0.0;
+     switch (data->header.type) {
+     case CAIRO_PATH_MOVE_TO:
++	last_move_to = data[1];
+ 	current_point = data[1];
+ 	break;
++    case CAIRO_PATH_CLOSE_PATH:
++	/* Make it look like it's a line_to to last_move_to */
++	data = (&last_move_to) - 1;
++	/* fall through */
+     case CAIRO_PATH_LINE_TO:
+ 	parametrization[i] = two_points_distance (&current_point, &data[1]);
+ 	current_point = data[1];
+@@ -245,8 +250,6 @@
+ 
+ 	current_point = data[3];
+ 	break;
+-    case CAIRO_PATH_CLOSE_PATH:
+-	break;
+     default:
+ 	g_assert_not_reached ();
+     }
+@@ -320,7 +323,7 @@
+ {
+   int i;
+   double ratio, the_y = *y, the_x = *x, dx, dy;
+-  cairo_path_data_t *data, current_point;
++  cairo_path_data_t *data, last_move_to, current_point;
+   cairo_path_t *path = param->path;
+   parametrization_t *parametrization = param->parametrization;
+ 
+@@ -333,6 +336,7 @@
+     switch (data->header.type) {
+     case CAIRO_PATH_MOVE_TO:
+ 	current_point = data[1];
++        last_move_to = data[1];
+ 	break;
+     case CAIRO_PATH_LINE_TO:
+ 	current_point = data[1];
+@@ -352,6 +356,10 @@
+ 
+   case CAIRO_PATH_MOVE_TO:
+       break;
++  case CAIRO_PATH_CLOSE_PATH:
++      /* Make it look like it's a line_to to last_move_to */
++      data = (&last_move_to) - 1;
++      /* fall through */
+   case CAIRO_PATH_LINE_TO:
+       {
+ 	ratio = the_x / parametrization[i];
+@@ -424,8 +432,6 @@
+ 	*y +=  dx * ratio;
+       }
+       break;
+-  case CAIRO_PATH_CLOSE_PATH:
+-      break;
+   default:
+       g_assert_not_reached ();
+   }
+diff -aur old/pango/pango-impl-utils.h new/pango/pango-impl-utils.h
+--- old/pango/pango-impl-utils.h	2008-12-06 14:35:22.291559359 +0800
++++ new/pango/pango-impl-utils.h	2008-12-06 14:35:03.550729660 +0800
+@@ -23,6 +23,7 @@
+ #ifndef __PANGO_IMPL_UTILS_H__
+ #define __PANGO_IMPL_UTILS_H__
+ 
++#include <glib.h>
+ #include <glib-object.h>
+ #include <pango/pango.h>
+ 
+@@ -92,6 +93,36 @@
+ 			       PangoRectangle   *ink_rect,
+ 			       PangoRectangle   *logical_rect);
+ 
++
++/* We define these functions static here because we don't want to add public API
++ * for them (if anything, it belongs to glib, but glib found it trivial enough
++ * not to add API for).  At some point metrics calculations will be
++ * centralized and this mess can be minimized.  Or so I hope.
++ */
++
++static inline G_GNUC_UNUSED int
++pango_unichar_width (gunichar c)
++{
++  return G_UNLIKELY (g_unichar_iszerowidth (c)) ? 0 :
++	   G_UNLIKELY (g_unichar_iswide (c)) ? 2 : 1;
++}
++
++static G_GNUC_UNUSED glong
++pango_utf8_strwidth (const gchar *p)
++{
++  glong len = 0;
++  g_return_val_if_fail (p != NULL, 0);
++
++  while (*p)
++    {
++      len += pango_unichar_width (g_utf8_get_char (p));
++      p = g_utf8_next_char (p);
++    }
++
++  return len;
++}
++
++
+ G_END_DECLS
+ 
+ #endif /* __PANGO_IMPL_UTILS_H__ */
+diff -aur old/pango/pangocairo-atsuifont.c new/pango/pangocairo-atsuifont.c
+--- old/pango/pangocairo-atsuifont.c	2008-12-06 14:35:23.464057615 +0800
++++ new/pango/pangocairo-atsuifont.c	2008-12-06 14:35:04.914061436 +0800
+@@ -24,6 +24,7 @@
+ 
+ #import <Cocoa/Cocoa.h>
+ 
++#include "pango-impl-utils.h"
+ #include "pangoatsui-private.h"
+ #include "pangocairo.h"
+ #include "pangocairo-private.h"
+@@ -148,7 +149,7 @@
+   pango_layout_set_text (layout, sample_str, -1);
+   pango_layout_get_extents (layout, NULL, &extents);
+ 
+-  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1);
++  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str);
+ 
+   pango_layout_set_text (layout, "0123456789", -1);
+   metrics->approximate_digit_width = max_glyph_width (layout);
+@@ -174,6 +175,10 @@
+ static void
+ pango_cairo_atsui_font_finalize (GObject *object)
+ {
++  PangoCairoATSUIFont *cafont = (PangoCairoATSUIFont *) object;
++
++  _pango_cairo_font_private_finalize (&cafont->cf_priv);
++
+   G_OBJECT_CLASS (pango_cairo_atsui_font_parent_class)->finalize (object);
+ }
+ 
+@@ -191,7 +196,7 @@
+ }
+ 
+ static void
+-pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont)
++pango_cairo_atsui_font_init (PangoCairoATSUIFont *cafont G_GNUC_UNUSED)
+ {
+ }
+ 
+diff -aur old/pango/pangocairo-fcfont.c new/pango/pangocairo-fcfont.c
+--- old/pango/pangocairo-fcfont.c	2008-12-06 14:35:22.840724772 +0800
++++ new/pango/pangocairo-fcfont.c	2008-12-06 14:35:04.294060844 +0800
+@@ -88,7 +88,7 @@
+ static void
+ pango_cairo_fc_font_finalize (GObject *object)
+ {
+-  PangoCairoFcFont *cffont = (PangoCairoFcFont *) (object);
++  PangoCairoFcFont *cffont = (PangoCairoFcFont *) object;
+ 
+   _pango_cairo_font_private_finalize (&cffont->cf_priv);
+ 
+@@ -162,7 +162,7 @@
+ }
+ 
+ static void
+-pango_cairo_fc_font_init (PangoCairoFcFont *cffont)
++pango_cairo_fc_font_init (PangoCairoFcFont *cffont G_GNUC_UNUSED)
+ {
+ }
+ 
+diff -aur old/pango/pangocairo-font.c new/pango/pangocairo-font.c
+--- old/pango/pangocairo-font.c	2008-12-06 14:35:23.387391067 +0800
++++ new/pango/pangocairo-font.c	2008-12-06 14:35:04.840728398 +0800
+@@ -560,14 +560,18 @@
+ 
+   if (cf_priv->scaled_font)
+     cairo_scaled_font_destroy (cf_priv->scaled_font);
++  cf_priv->scaled_font = NULL;
+ 
+   _pango_cairo_font_hex_box_info_destroy (cf_priv->hbi);
++  cf_priv->hbi = NULL;
+ 
+   if (cf_priv->glyph_extents_cache)
+     g_free (cf_priv->glyph_extents_cache);
++  cf_priv->glyph_extents_cache = NULL;
+ 
+   g_slist_foreach (cf_priv->metrics_by_lang, (GFunc)free_metrics_info, NULL);
+   g_slist_free (cf_priv->metrics_by_lang);
++  cf_priv->metrics_by_lang = NULL;
+ }
+ 
+ gboolean
+diff -aur old/pango/pangocairo-win32font.c new/pango/pangocairo-win32font.c
+--- old/pango/pangocairo-win32font.c	2008-12-06 14:35:22.500726273 +0800
++++ new/pango/pangocairo-win32font.c	2008-12-06 14:35:03.990726207 +0800
+@@ -150,7 +150,7 @@
+   pango_layout_set_text (layout, sample_str, -1);
+   pango_layout_get_extents (layout, NULL, &extents);
+ 
+-  metrics->approximate_char_width = extents.width / g_utf8_strlen (sample_str, -1);
++  metrics->approximate_char_width = extents.width / pango_utf8_strwidth (sample_str);
+ 
+   pango_layout_set_text (layout, "0123456789", -1);
+   metrics->approximate_digit_width = max_glyph_width (layout);
+@@ -164,6 +164,10 @@
+ static void
+ pango_cairo_win32_font_finalize (GObject *object)
+ {
++  PangoCairoWin32Font *cwfont = (PangoCairoWin32Font *) object;
++
++  _pango_cairo_font_private_finalize (&cwfont->cf_priv);
++
+   G_OBJECT_CLASS (pango_cairo_win32_font_parent_class)->finalize (object);
+ }
+ 
+@@ -225,7 +229,7 @@
+ }
+ 
+ static void
+-pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont)
++pango_cairo_win32_font_init (PangoCairoWin32Font *cwfont G_GNUC_UNUSED)
+ {
+ }
+ 
+diff -aur old/pango/pangofc-font.c new/pango/pangofc-font.c
+--- old/pango/pangofc-font.c	2008-12-06 14:35:23.117390557 +0800
++++ new/pango/pangofc-font.c	2008-12-06 14:35:04.564059609 +0800
+@@ -496,7 +496,7 @@
+   pango_layout_get_extents (layout, NULL, &extents);
+ 
+   metrics->approximate_char_width =
+-    extents.width / g_utf8_strlen (sample_str, -1);
++    extents.width / pango_utf8_strwidth (sample_str);
+ 
+   pango_layout_set_text (layout, "0123456789", -1);
+   metrics->approximate_digit_width = max_glyph_width (layout);
diff --git a/abs/core-testing/pil/PKGBUILD b/abs/core-testing/pil/PKGBUILD
index 59e9b83..f7149de 100644
--- a/abs/core-testing/pil/PKGBUILD
+++ b/abs/core-testing/pil/PKGBUILD
@@ -1,10 +1,12 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: simo <simo@archlinux.org>
+# $Id: PKGBUILD 16703 2008-10-22 02:31:25Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: simo <simo@archlinux.org>
+
 pkgname=pil
 pkgver=1.1.6
-pkgrel=4
+pkgrel=5
 pkgdesc="Python imaging library"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
 url="http://www.pythonware.com/products/pil/index.htm"
 license=('custom:"pil"')
 depends=('python' 'libjpeg' 'freetype2') 
@@ -13,14 +15,14 @@ source=(http://effbot.org/downloads/Imaging-$pkgver.tar.gz)
 md5sums=('3a9b5c20ca52f0a9900512d2c7347622')
 
 build() {
-  cd $startdir/src/Imaging-$pkgver
+  cd $srcdir/Imaging-$pkgver
   python setup.py build_ext 
-  python setup.py install --root=$startdir/pkg
-  mkdir -p $startdir/pkg/usr/include/python2.5/
-  cp libImaging/*.h $startdir/pkg/usr/include/python2.5/
+  python setup.py install --root=$pkgdir
+  mkdir -p $pkgdir/usr/include/python2.6/
+  cp libImaging/*.h $pkgdir/usr/include/python2.6/
 
   # Install license
-  install -m644 -D $startdir/src/Imaging-$pkgver/README \
-                   $startdir/pkg/usr/share/licenses/pil/README
+  install -m644 -D $srcdir/Imaging-$pkgver/README \
+                   $pkgdir/usr/share/licenses/pil/README
 }
 
diff --git a/abs/core-testing/plextor-convertX-driver/PKGBUILD b/abs/core-testing/plextor-convertX-driver/PKGBUILD
index 102d539..fb503fb 100755
--- a/abs/core-testing/plextor-convertX-driver/PKGBUILD
+++ b/abs/core-testing/plextor-convertX-driver/PKGBUILD
@@ -2,13 +2,13 @@
 
 pkgname=plextor-convertX-driver
 pkgver=0.9.8
-pkgrel=2
-_kernver=2.6.26-ARCH
+pkgrel=3
+_kernver=2.6.27-ARCH
 pkgdesc="Drivers for Plextor tuners"
 arch=(i686 x86_64)
 url="http://nikosapi.org/software/WIS_Go7007"
 install="convertX.install"
-source=("http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2" 'wis-go7007-2.6.26-nopage.diff')
+source=("http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch')
 depends=('udev>=070' 'fxload')
 makedepends=('gcc')
 
@@ -17,6 +17,7 @@ build() {
   # SET UP
   cd $startdir/src/wis-go7007-linux-0.9.8-2 || return 1
   patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1
+  patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1
   # build
   make clean ||  return 1
   make || return 1
diff --git a/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch b/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch
new file mode 100644
index 0000000..6275d8c
--- /dev/null
+++ b/abs/core-testing/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch
@@ -0,0 +1,83 @@
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c	2007-03-21 12:51:54.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c	2008-12-30 21:04:32.545534308 -0600
+@@ -32,7 +32,7 @@
+ #include <linux/i2c.h>
+ #include <linux/firmware.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ #include <linux/videodev.h>
+ #include <media/tuner.h>
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c	2008-04-06 09:28:35.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c	2008-12-30 21:04:32.569550193 -0600
+@@ -29,7 +29,7 @@
+ #include <linux/device.h>
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ 
+ #include "go7007-priv.h"
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c
+--- wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c	2008-12-30 21:16:17.221534155 -0600
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c	2008-12-30 21:10:24.252534209 -0600
+@@ -35,10 +35,12 @@
+ #include <media/audiochip.h>
+ #else
+ #include <media/v4l2-common.h>
++#include <media/v4l2-chip-ident.h>
++#include <media/v4l2-ioctl.h>
+ #endif
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ 
+ #include "../include/go7007.h"
+@@ -1478,7 +1480,7 @@
+ 
+ static struct video_device go7007_template = {
+ 	.name		= "go7007",
+-	.type		= VID_TYPE_CAPTURE,
++	.vfl_type		= VID_TYPE_CAPTURE,
+ 	.fops		= &go7007_fops,
+ 	.minor		= -1,
+ 	.release	= go7007_vfl_release,
+@@ -1492,7 +1494,7 @@
+ 	if (go->video_dev == NULL)
+ 		return -ENOMEM;
+ 	memcpy(go->video_dev, &go7007_template, sizeof(go7007_template));
+-	go->video_dev->dev = go->dev;
++	go->video_dev->parent = go->dev;
+ 	rv = video_register_device(go->video_dev, VFL_TYPE_GRABBER, -1);
+ 	if (rv < 0)
+ 	{
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c
+--- wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c	2007-09-06 22:45:25.000000000 -0500
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c	2008-12-30 21:04:33.077579435 -0600
+@@ -34,7 +34,7 @@
+ #include <linux/mm.h>
+ #include <linux/i2c.h>
+ #include <asm/uaccess.h>
+-#include <asm/semaphore.h>
++#include <linux/semaphore.h>
+ #include <asm/system.h>
+ #include <sound/driver.h>
+ #include <sound/core.h>
+diff -Naur wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c
+--- wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c	2006-04-01 16:37:18.000000000 -0600
++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c	2008-12-30 21:10:36.100534544 -0600
+@@ -23,6 +23,8 @@
+ #include <media/tuner.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #include <media/v4l2-common.h>
++#include <media/v4l2-chip-ident.h>
++#include <media/v4l2-ioctl.h>
+ #endif
+ 
+ #include "wis-i2c.h"
diff --git a/abs/core-testing/ppp/PKGBUILD b/abs/core-testing/ppp/PKGBUILD
index 24f40a7..8240ad7 100644
--- a/abs/core-testing/ppp/PKGBUILD
+++ b/abs/core-testing/ppp/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 20217 2008-12-01 18:12:37Z thomas $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=ppp
 pkgver=2.4.4
-pkgrel=15
+pkgrel=7
 pkgdesc="A daemon which implements the PPP protocol for dial-up networking"
 arch=(i686 x86_64) 
 url="http://www.samba.org/ppp/"
 license=('custom:GPL/BSD')
 groups=('base')
-depends=('glibc' 'libpcap>=0.9.8')
+depends=('glibc' 'libpcap>=1.0.0')
 backup=(etc/ppp/{chap-secrets,pap-secrets,options,ip-up,ip-down})
 source=(ftp://ftp.samba.org/pub/ppp/ppp-$pkgver.tar.gz \
         options pon poff ppp plog pon.1 ip-up ip-down)
@@ -42,6 +42,6 @@ build() {
   install -D -m600 etc.ppp/pap-secrets $startdir/pkg/etc/ppp/pap-secrets
   install -D -m600 etc.ppp/chap-secrets $startdir/pkg/etc/ppp/chap-secrets
   install -D -m755 $startdir/src/ppp $startdir/pkg/etc/rc.d/ppp 
-  install -D -m644 $startdir/src/pon.1 $startdir/pkg/usr/man/man1/pon.1
+  install -D -m644 $startdir/src/pon.1 $startdir/pkg/usr/share/man/man1/pon.1
   mkdir -p $startdir/pkg/etc/ppp/peers
 }
diff --git a/abs/core-testing/pygobject/PKGBUILD b/abs/core-testing/pygobject/PKGBUILD
index 159de7a..e6e4548 100644
--- a/abs/core-testing/pygobject/PKGBUILD
+++ b/abs/core-testing/pygobject/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 2539 2008-06-06 13:24:21Z jgc $
+# $Id: PKGBUILD 16706 2008-10-22 02:32:50Z allan $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=pygobject
-pkgver=2.14.2
-pkgrel=1
+pkgver=2.15.4
+pkgrel=2
 pkgdesc="Python bindings for GObject"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('python>=2.5.1-5' 'glib2>=2.16.3')
-source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/2.14/${pkgname}-${pkgver}.tar.bz2)
+depends=('python>=2.5.2-5' 'glib2>=2.18.1')
+source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/2.15/${pkgname}-${pkgver}.tar.bz2)
 options=('!libtool')
 url="http://www.pygtk.org/"
-md5sums=('0e9e9300e81847f4f7266f49d3bebbaf')
+md5sums=('df59affe5b8fd7148506c3473d479868')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/pygtk/PKGBUILD b/abs/core-testing/pygtk/PKGBUILD
index 71bec7d..434af1c 100644
--- a/abs/core-testing/pygtk/PKGBUILD
+++ b/abs/core-testing/pygtk/PKGBUILD
@@ -1,24 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 16726 2008-10-22 02:50:46Z allan $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
 
 pkgname=pygtk
-pkgver=2.12.1
-pkgrel=1
+pkgver=2.13.0
+pkgrel=2
 pkgdesc="Python bindings for the GTK widget set"
 arch=(i686 x86_64)
 license=('LGPL')
-depends=('libglade>=2.6.2' 'pycairo>=1.4.0' 'pygobject>=2.14.1' 'python-numeric>=24.2-2' 'gtk2>=2.12.0')
+depends=('libglade>=2.6.3' 'pycairo>=1.6.4' 'pygobject>=2.15.4' 'python-numeric>=24.2-2')
 options=('!libtool')
 url="http://www.pygtk.org/"
-source=(http://ftp.gnome.org/pub/gnome/sources/pygtk/2.12/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a816346d750d61e3fa67a200e4292694')
+source=(http://ftp.gnome.org/pub/gnome/sources/pygtk/2.13/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e1513921bfd3790b456899c483fceaea')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  sed -i -e 's/SUBDIRS = codegen . $(GTK_SUBDIR) examples tests docs/SUBDIRS = codegen . $(GTK_SUBDIR) examples tests/' Makefile.in
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  install -m644 gtk/gtk-extrafuncs.defs ${startdir}/pkg/usr/share/pygtk/2.0/defs/
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m644 gtk/gtk-extrafuncs.defs "${pkgdir}/usr/share/pygtk/2.0/defs/" || return 1
 }
diff --git a/abs/core-testing/python-numeric/PKGBUILD b/abs/core-testing/python-numeric/PKGBUILD
index 9ec5dec..67a8ab5 100644
--- a/abs/core-testing/python-numeric/PKGBUILD
+++ b/abs/core-testing/python-numeric/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 16713 2008-10-22 02:37:43Z allan $
 # Maintainer: arjan <arjan@archlinux.org>
 # Contributor orelien <aurelien.foret@wanadoo.fr>
 
 pkgname=python-numeric
 pkgver=24.2
-pkgrel=2
+pkgrel=3
 pkgdesc="Numerical Python adds a fast array facility to the Python language."
 arch=(i686 x86_64)
 depends=('python>=2.5')
-source=(http://heanet.dl.sourceforge.net/sourceforge/numpy/Numeric-${pkgver}.tar.gz)
+source=(http://downloads.sourceforge.net/sourceforge/numpy/Numeric-${pkgver}.tar.gz)
 replaces=('numeric')
 url="http://numeric.scipy.org/"
 md5sums=(2ae672656e06716a149acb048cca3093)
diff --git a/abs/core-testing/python/ChangeLog b/abs/core-testing/python/ChangeLog
new file mode 100644
index 0000000..2d5c46a
--- /dev/null
+++ b/abs/core-testing/python/ChangeLog
@@ -0,0 +1,9 @@
+2008-12-07  Allan McRae <allan@archlinux.org>
+	* python 2.6.1-1
+	* upstream update
+	* fix gdbm related build error
+	* fix modulator/pynche launchers
+
+2008-10-27  Allan McRae <allan@archlinux.org>
+	* python 2.6-2
+	* patched to use internal expat
\ No newline at end of file
diff --git a/abs/core-testing/python/PKGBUILD b/abs/core-testing/python/PKGBUILD
index bc812de..16ebac5 100644
--- a/abs/core-testing/python/PKGBUILD
+++ b/abs/core-testing/python/PKGBUILD
@@ -1,57 +1,58 @@
-# $Id: PKGBUILD 4689 2008-07-08 21:50:56Z andyrtr $
+# $Id: PKGBUILD 20912 2008-12-07 08:52:24Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributer: Jason Chu <jason@archlinux.org>
 
 pkgname=python
-pkgver=2.5.2
-pkgrel=5
-_pybasever=2.5
+pkgver=2.6.1
+pkgrel=1
+_pybasever=2.6
 pkgdesc="A high-level scripting language"
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://www.python.org"
-depends=('db4.5' 'bzip2' 'gdbm' 'openssl>=0.9.8d' 'zlib')
+depends=('db' 'bzip2' 'gdbm' 'openssl>=0.9.8d' 'zlib')
 makedepends=('tk>=8.5.0' 'sqlite3')
-provides=('python-elementree' 'python-ctypes')
-replaces=('python-elementree' 'python-ctypes')
-install=python.install
+optdepends=('tk: for IDLE, pynche and modulator')
+provides=('python-elementtree' 'python-ctypes')
+replaces=('python-elementtree' 'python-ctypes')
 source=(http://www.python.org/ftp/python/${pkgver}/Python-${pkgver}.tar.bz2
+	python-2.6-internal-expat.patch
+	python-2.6-gdbm.patch
 	modulator-launcher
-	pynche-launcher
-	Python-2.4.4-gdbm-1.patch
-	python-2.5.CVE-2007-4965-int-overflow.patch
-	python2.6-set_wakeup_fd4.patch
-	Python-2.5.2-idlelib.patch)
-md5sums=('afb5451049eda91fbde10bd5a4b7fadc'
-         'faa0d4b947bfe67fc8684b5c464f46f2'
-         '60a44af1d8af276274e20c564c0f3d8b'
-         '2b61e06365e9fb5f3af22d946efa8be6'
-         '491416c1b337fc61b6cdf5981d895a7d'
-         'ec56710959deb01b5fa35829cafec6a3'
-         'e6441e0b013ac64795221154e0495e10')
+	pynche-launcher)
+md5sums=('e81c2f0953aa60f8062c05a4673f2be0'
+         '993800dbcc0c4f199c1ceee998a06e71'
+         '13fab4bb2cacbc433e62d7191a17f71e'
+         'b4a531570415280dc406c8d5c1fa8d83'
+         '9f731b9033db285132a3524fb36409e7')
+
 
 build() {
-  cd ${startdir}/src/Python-${pkgver}
-  patch -Np1 -i ${srcdir}/Python-2.4.4-gdbm-1.patch || return 1
-  # fix http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-4965
-  patch -Np1 -i ${srcdir}/python-2.5.CVE-2007-4965-int-overflow.patch || return 1
-  
-  patch -Np2 -i ${srcdir}/python2.6-set_wakeup_fd4.patch || return 1
-  patch -Np0 -i ${srcdir}/Python-2.5.2-idlelib.patch
+  cd ${srcdir}/Python-${pkgver}
+
+  patch -Np0 -i ${srcdir}/python-2.6-internal-expat.patch
+  patch -Np1 -i ${srcdir}/python-2.6-gdbm.patch
 
   ./configure --prefix=/usr --enable-shared --with-threads --enable-unicode
+  
+  # temporary backwards compatibility stuff...
+  sed -i 's#SITEPATH=#SITEPATH=:/usr/lib/python2.5/site-packages#' Makefile
+
   make || return 1
   make DESTDIR=${pkgdir} install
 
   rm ${pkgdir}/usr/bin/python
   ln -sf python${_pybasever} ${pkgdir}/usr/bin/python
+  ln -sf python${_pybasever} ${pkgdir}/usr/bin/python2
 
   # Install the tools
   #modulator
+  sed -i "s#%%PYBASEVER%%#${_pybasever}#" ${srcdir}/modulator-launcher
   install -m755 ${srcdir}/modulator-launcher ${pkgdir}/usr/bin/modulator
   cp -r Tools/modulator ${pkgdir}/usr/lib/python${_pybasever}/site-packages/
 
   #pynche
+  sed -i "s#%%PYBASEVER%%#${_pybasever}#" ${srcdir}/pynche-launcher
   install -m755 ${srcdir}/pynche-launcher ${pkgdir}/usr/bin/pynche
   rm -f Tools/pynche/*.pyw
   cp -r Tools/pynche ${pkgdir}/usr/lib/python${_pybasever}/site-packages/
@@ -65,5 +66,5 @@ build() {
   install Tools/scripts/*py ${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/
 
   # license
-  install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+  install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 }
diff --git a/abs/core-testing/python/modulator-launcher b/abs/core-testing/python/modulator-launcher
index 732f05c..ba46e93 100644
--- a/abs/core-testing/python/modulator-launcher
+++ b/abs/core-testing/python/modulator-launcher
@@ -1,2 +1,2 @@
 #!/bin/bash
-exec /usr/lib/python2.5/site-packages/modulator/modulator.py
+exec /usr/lib/python%%PYBASEVER%%/site-packages/modulator/modulator.py
diff --git a/abs/core-testing/python/pynche-launcher b/abs/core-testing/python/pynche-launcher
index ab3a6d8..a4338a7 100644
--- a/abs/core-testing/python/pynche-launcher
+++ b/abs/core-testing/python/pynche-launcher
@@ -1,3 +1,3 @@
 #!/bin/bash
-/usr/lib/python2.5/site-packages/pynche/pynche
+/usr/lib/python%%PYBASEVER%%/site-packages/pynche/pynche
 
diff --git a/abs/core-testing/python/python-2.6-gdbm.patch b/abs/core-testing/python/python-2.6-gdbm.patch
new file mode 100644
index 0000000..0f223f6
--- /dev/null
+++ b/abs/core-testing/python/python-2.6-gdbm.patch
@@ -0,0 +1,12 @@
+diff -Naur Python-2.6-old/setup.py Python-2.6/setup.py
+--- Python-2.6-old/setup.py	2008-09-30 10:15:45.000000000 +1000
++++ Python-2.6/setup.py	2008-12-07 16:04:01.000000000 +1000
+@@ -1013,7 +1013,7 @@
+                 if self.compiler.find_library_file(lib_dirs, 'ndbm'):
+                     ndbm_libs = ['ndbm']
+                 else:
+-                    ndbm_libs = []
++                    ndbm_libs = ['gdbm', 'gdbm_compat']
+                 exts.append( Extension('dbm', ['dbmmodule.c'],
+                                        define_macros=[('HAVE_NDBM_H',None)],
+                                        libraries = ndbm_libs ) )
diff --git a/abs/core-testing/python/python-2.6-internal-expat.patch b/abs/core-testing/python/python-2.6-internal-expat.patch
new file mode 100644
index 0000000..86252ab
--- /dev/null
+++ b/abs/core-testing/python/python-2.6-internal-expat.patch
@@ -0,0 +1,33 @@
+--- setup.py    2008-04-22 12:12:24.613554757 +0300
++++ setup.py    2008-04-22 12:13:09.276544063 +0300
+@@ -1035,18 +1035,15 @@
+         #
+         # More information on Expat can be found at www.libexpat.org.
+         #
+-        expatinc = os.path.join(os.getcwd(), srcdir, 'Modules', 'expat')
+-        define_macros = [
+-            ('HAVE_EXPAT_CONFIG_H', '1'),
+-        ]
++        # Use system expat
++        expatinc = '/usr/include'
++        define_macros = []
+
+         exts.append(Extension('pyexpat',
+                               define_macros = define_macros,
+                               include_dirs = [expatinc],
++                              libraries = ['expat'],
+                               sources = ['pyexpat.c',
+-                                         'expat/xmlparse.c',
+-                                         'expat/xmlrole.c',
+-                                         'expat/xmltok.c',
+                                          ],
+                               ))
+
+@@ -1058,6 +1055,7 @@
+             exts.append(Extension('_elementtree',
+                                   define_macros = define_macros,
+                                   include_dirs = [expatinc],
++                                  libraries = ['expat'],
+                                   sources = ['_elementtree.c'],
+                                   ))
+
diff --git a/abs/core-testing/samba/PKGBUILD b/abs/core-testing/samba/PKGBUILD
index 599025e..67151b9 100644
--- a/abs/core-testing/samba/PKGBUILD
+++ b/abs/core-testing/samba/PKGBUILD
@@ -1,78 +1,85 @@
-# $Id: PKGBUILD 14140 2008-10-04 09:43:47Z tpowa $
+# $Id: PKGBUILD 22200 2008-12-22 22:24:26Z tpowa $
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=samba
-pkgver=3.2.4
+pkgver=3.2.6
 # We use the 'A' to fake out pacman's version comparators.  Samba chooses
 # to append 'a','b',etc to their subsequent releases, which pamcan
 # misconstrues as alpha, beta, etc.  Bad samba!
-_realver=3.2.4
-pkgrel=4
+_realver=3.2.6
+pkgrel=2
 pkgdesc="Tools to access a server's filespace and printers via SMB"
 arch=(i686 x86_64)
 url="http://www.samba.org"
 license=('GPL3')
 backup=(etc/logrotate.d/samba etc/pam.d/samba etc/samba/smb.conf etc/xinetd.d/swat etc/conf.d/samba)
-depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'smbclient=3.2.4' 'libcap' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'tdb=3.2.4')
+depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'smbclient=3.2.6' 'libcap' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'tdb=3.2.6')
 options=(!makeflags)
 source=(http://us1.samba.org/samba/ftp/stable/${pkgname}-${_realver}.tar.gz \
         no-clients.patch samba samba.logrotate swat.xinetd samba.pam samba.conf.d)
 
 build() {
-  cd ${startdir}/src/${pkgname}-${_realver}/source
-  patch -Np2 -i ${startdir}/src/no-clients.patch || return 1
+  cd ${srcdir}/${pkgname}-${_realver}/source
+  patch -Np2 -i ${srcdir}/no-clients.patch || return 1
 
   ./configure --prefix=/usr --with-configdir=/etc/samba \
               --with-lockdir=/var/cache/samba \
               --with-piddir=/var/run/samba \
               --with-fhs --with-pam --with-ads --with-acl-support \
               --without-cifsmount --without-libsmbclient \
-	      --disable-fam 
+              --with-syslog --with-pam_smbpass \
               --localstatedir=/var --disable-dnssd --libdir=/usr/lib/samba
   make || return 1
-  mkdir -p $startdir/pkg/var/log/samba
-  mkdir -p $startdir/pkg/etc/samba/private
-  chmod 700 $startdir/pkg/etc/samba/private
+  mkdir -p ${pkgdir}/var/log/samba
+  mkdir -p ${pkgdir}/etc/samba/private
+  chmod 700 ${pkgdir}/etc/samba/private
   make DESTDIR=$startdir/pkg install
-  chmod 644 $startdir/pkg/usr/include/*.h
-  rm -rf $startdir/pkg/usr/var
+  chmod 644 ${pkgdir}/usr/include/*.h
+  rm -rf ${pkgdir}/usr/var
   (cd script; cp installbin.sh i; cat i | sed 's/\/sbin\///' > installbin.sh)
-  install -D -m755 ../../samba $startdir/pkg/etc/rc.d/samba
-  install -D -m644 ../../samba.conf.d $startdir/pkg/etc/conf.d/samba
-  mkdir -p $startdir/pkg/etc/samba
+  install -D -m755 ../../samba ${pkgdir}/etc/rc.d/samba
+  install -D -m644 ../../samba.conf.d ${pkgdir}/etc/conf.d/samba
+  mkdir -p ${pkgdir}/etc/samba
   cat ../examples/smb.conf.default | \
-    sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >$startdir/pkg/etc/samba/smb.conf.default
-  install -D -m644 ../../samba.logrotate $startdir/pkg/etc/logrotate.d/samba
-  install -D -m644 ../../swat.xinetd $startdir/pkg/etc/xinetd.d/swat
-  install -D -m644 ../../samba.pam $startdir/pkg/etc/pam.d/samba
+    sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >${pkgdir}/etc/samba/smb.conf.default
+  install -D -m644 ../../samba.logrotate ${pkgdir}/etc/logrotate.d/samba
+  install -D -m644 ../../swat.xinetd ${pkgdir}/etc/xinetd.d/swat
+  install -D -m644 ../../samba.pam ${pkgdir}/etc/pam.d/samba
   # symlink libs
-  for i in ${startdir}/pkg/usr/lib/samba/libsmbshare*; do
-	ln -sf samba/$(basename $i) ${startdir}/pkg/usr/lib/$(basename $i)
+  for i in ${pkgdir}/usr/lib/samba/libsmbshare*; do
+	ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)
   done
   # spool directory
-  install -d -m1777 $startdir/pkg/var/spool/samba
-  sed -i 's|/usr/spool/samba|/var/spool/samba|g' $startdir/pkg/etc/samba/smb.conf.default
+  install -d -m1777 ${pkgdir}/var/spool/samba
+  sed -i 's|/usr/spool/samba|/var/spool/samba|g' ${pkgdir}/etc/samba/smb.conf.default
   # fix logrotate
-  sed -i -e 's|log.%m|%m.log|g' $startdir/pkg/etc/samba/smb.conf.default
+  sed -i -e 's|log.%m|%m.log|g' ${pkgdir}/etc/samba/smb.conf.default
   # nsswitch libraries
-  install -D -m755 nsswitch/libnss_wins.so $startdir/pkg/lib/libnss_wins.so
-  ln -s libnss_wins.so $startdir/pkg/lib/libnss_wins.so.2
-  install -D -m755 nsswitch/libnss_winbind.so $startdir/pkg/lib/libnss_winbind.so
-  install -D -m755 bin/pam_winbind.so $startdir/pkg/lib/security/pam_winbind.so
+  install -D -m755 nsswitch/libnss_wins.so ${pkgdir}/lib/libnss_wins.so
+  ln -s libnss_wins.so ${pkgdir}/lib/libnss_wins.so.2
+  install -D -m755 nsswitch/libnss_winbind.so ${pkgdir}/lib/libnss_winbind.so
+  install -D -m755 bin/pam_winbind.so ${pkgdir}/lib/security/pam_winbind.so
   # remove conflict files of smbclient and tdb
   for man in libsmbclient smbspool \
       umount.cifs mount.cifs net; do
-    rm -f ${startdir}/pkg/usr/share/man/man8/${man}.8
+    rm -f ${pkgdir}/usr/share/man/man8/${man}.8
   done
   for i in libnetapi* libtdb* libtalloc* libwbclient*; do
-	  rm -f ${startdir}/pkg/usr/lib/samba/$i
+	  rm -f ${pkgdir}/usr/lib/samba/$i
   done
-  rm -f ${startdir}/pkg/usr/bin/tdbbackup
-  rm -f ${startdir}/pkg/usr/include/{tdb.h,talloc.h,netapi.h}
+  rm -f ${pkgdir}/usr/bin/tdbbackup
+  rm -f ${pkgdir}/usr/include/{tdb.h,talloc.h,netapi.h}
   for man in rpcclient smbcacls smbclient smbcquotas \
       smbtree smbtar nmblookup smbget; do
-    rm -f ${startdir}/pkg/usr/share/man/man1/${man}.1
+    rm -f ${pkgdir}/usr/share/man/man1/${man}.1
   done
-  rm -f ${startdir}/pkg/usr/share/man/man7/libsmbclient.7
+  rm -f ${pkgdir}/usr/share/man/man7/libsmbclient.7
 
-  rm -f ${startdir}/pkg/usr/include/libsmbclient.h
+  rm -f ${pkgdir}/usr/include/libsmbclient.h
 }
+md5sums=('0cd27c7afbb8211616eea4010f32271c'
+         'a676f0dde2c434aeb5125376b8797a64'
+         'e93533fa2296c07c1f645dfdd373657f'
+         '5697da77590ec092cc8a883bae06093c'
+         'a4bbfa39fee95bba2e7ad6b535fae7e6'
+         '96f82c38f3f540b53f3e5144900acf17'
+         'f2f2e348acd1ccb566e95fa8a561b828')
diff --git a/abs/core-testing/smbclient/PKGBUILD b/abs/core-testing/smbclient/PKGBUILD
index 5e423ebe..c0034b3 100644
--- a/abs/core-testing/smbclient/PKGBUILD
+++ b/abs/core-testing/smbclient/PKGBUILD
@@ -1,56 +1,57 @@
-# $Id: PKGBUILD 14139 2008-10-04 09:13:09Z tpowa $
+# $Id: PKGBUILD 22197 2008-12-22 22:08:42Z tpowa $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=smbclient
-pkgver=3.2.4
+pkgver=3.2.6
 # We use the 'A' to fake out pacman's version comparators.  Samba chooses
-# to append 'a','b',etc to their subsequent releases, which pamcan
+# to append 'a','b',etc to their subsequent releases, which pacman
 # misconstrues as alpha, beta, etc.  Bad samba!
-_realver=3.2.4
-pkgrel=3
+_realver=3.2.6
+pkgrel=2
 pkgdesc="Tools to access a server's filespace and printers via SMB"
 arch=(i686 x86_64)
 url="http://www.samba.org"
 license=('GPL3')
-depends=('popt' 'libldap' 'libcap' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.2.4')
+depends=('popt' 'libldap' 'libcap' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.2.6')
 source=(http://us1.samba.org/samba/ftp/samba-${_realver}.tar.gz)
 options=(!makeflags)
 
 build() {
-  cd ${startdir}/src/samba-${_realver}/source
+  cd ${srcdir}/samba-${_realver}/source
 
   ./configure --prefix=/usr --with-cifsmount --with-fhs --with-pam \
               --with-datadir=/usr/share --with-configdir=/etc/samba \
               --with-lockdir=/var/run/samba --with-ads --with-acl-support \
-	      --localstatedir=/var --disable-dnssd  --libdir=/usr/lib/samba
+              --localstatedir=/var --with-syslog --with-pam_smbpass --disable-dnssd \
+              --libdir=/usr/lib/samba
 
   make proto bin/smbclient libsmbclient \
        bin/rpcclient bin/smbspool bin/smbtree \
        bin/smbcacls bin/smbcquotas bin/smbget \
        bin/net bin/nmblookup bin/mount.cifs bin/umount.cifs || return 1
-  mkdir -p ${startdir}/pkg/usr/bin ${startdir}/pkg/sbin ${startdir}/pkg/usr/lib/samba
-  install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${startdir}/pkg/usr/bin/
-  install -m755 bin/{mount.cifs,umount.cifs} ${startdir}/pkg/sbin/
-  mv  bin/*.so* ${startdir}/pkg/usr/lib/samba
-  install -m755 script/smbtar ${startdir}/pkg/usr/bin/
-  mkdir -p ${startdir}/pkg/usr/lib/cups/backend
-  ln -sf /usr/bin/smbspool ${startdir}/pkg/usr/lib/cups/backend/smb
-  for i in ${startdir}/pkg/usr/lib/samba/*; do
-   	ln -sf samba/$(basename $i) ${startdir}/pkg/usr/lib/$(basename $i)
+  mkdir -p ${pkgdir}/usr/bin ${pkgdir}/sbin ${pkgdir}/usr/lib/samba
+  install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/
+  install -m755 bin/{mount.cifs,umount.cifs} ${pkgdir}/sbin/
+  mv  bin/*.so* ${pkgdir}/usr/lib/samba
+  install -m755 script/smbtar ${pkgdir}/usr/bin/
+  mkdir -p ${pkgdir}/usr/lib/cups/backend
+  ln -sf /usr/bin/smbspool ${pkgdir}/usr/lib/cups/backend/smb
+  for i in ${pkgdir}/usr/lib/samba/*; do
+   	ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)
   done
-  rm -rf $startdir/pkg/usr/lib/libtdb*
-  mkdir -p ${startdir}/pkg/usr/include
-  install -m644 include/libsmbclient.h ${startdir}/pkg/usr/include/
-  install -m644 lib/talloc/talloc.h ${startdir}/pkg/usr/include/
-  install -m644 lib/netapi/netapi.h ${startdir}/pkg/usr/include/
-  mkdir -p ${startdir}/pkg/usr/share/man/man{1,7,8}
+  rm -rf ${pkgdir}/usr/lib/libtdb*
+  mkdir -p ${pkgdir}/usr/include
+  install -m644 include/libsmbclient.h ${pkgdir}/usr/include/
+  install -m644 lib/talloc/talloc.h ${pkgdir}/usr/include/
+  install -m644 lib/netapi/netapi.h ${pkgdir}/usr/include/
+  mkdir -p ${pkgdir}/usr/share/man/man{1,7,8}
   for man in smbspool \
       umount.cifs mount.cifs net; do
-    install -m644 ../docs/manpages/${man}.8 ${startdir}/pkg/usr/share/man/man8/
+    install -m644 ../docs/manpages/${man}.8 ${pkgdir}/usr/share/man/man8/
   done
   for man in rpcclient smbcacls smbclient smbcquotas smbget \
       smbtree smbtar nmblookup; do
-    install -m644 ../docs/manpages/${man}.1 ${startdir}/pkg/usr/share/man/man1/
+    install -m644 ../docs/manpages/${man}.1 ${pkgdir}/usr/share/man/man1/
   done
-  install -m644 ../docs/manpages/libsmbclient.7 ${startdir}/pkg/usr/share/man/man7/
+  install -m644 ../docs/manpages/libsmbclient.7 ${pkgdir}/usr/share/man/man7/
 }
-md5sums=('7870a6bb3a025c6081cd56688acd494a')
+md5sums=('0cd27c7afbb8211616eea4010f32271c')
diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD
index eb1dbc6..b40c3ee 100644
--- a/abs/core-testing/sqlite3/PKGBUILD
+++ b/abs/core-testing/sqlite3/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 12988 2008-09-25 16:26:35Z andyrtr $
+# $Id: PKGBUILD 22976 2008-12-30 11:35:01Z andyrtr $
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=sqlite3
-pkgver=3.6.3
-pkgrel=1
+pkgver=3.6.7
+pkgrel=2
 pkgdesc="A C library that implements an SQL database engine"
 arch=('i686' 'x86_64')
 license=('custom')
@@ -14,19 +14,21 @@ makedepends=('tcl')
 conflicts=('sqlite')
 replaces=('sqlite')
 source=(http://www.sqlite.org/sqlite-$pkgver.tar.gz
-	sqlite-3.5.8-pkgconfig-version.patch
 	license.txt)
 options=(!libtool)
-md5sums=('671d2715f33158abc47a7a2ddd6066c5'
-         '025965a176173eaf21877f6daed088d4'
+md5sums=('5223d1f459b608ed8c2c54f8847f8e1a'
          'c1cdbc5544034d9012e421e75a5e4890')
 
 build() {
   cd ${srcdir}/sqlite-${pkgver}
-  patch -Np1 -i ${srcdir}/sqlite-3.5.8-pkgconfig-version.patch || return 1
-  ./configure --prefix=/usr --enable-threadsafe  --disable-static || return 1
+  export LTLINK_EXTRAS="-ldl"
+  export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1"
+  ./configure --prefix=/usr \
+	--enable-threadsafe \
+	--disable-static \
+	--enable-load-extension || return 1
   make || return 1
-  make DESTDIR=${pkgdir} install
+  make DESTDIR=${pkgdir} install || return 1
   install -Dm0644 sqlite3.1 ${pkgdir}/usr/share/man/man1/sqlite3.1
 
   # license
diff --git a/abs/core-testing/tcl/ChangeLog b/abs/core-testing/tcl/ChangeLog
index 313bd98..0aeabc7 100644
--- a/abs/core-testing/tcl/ChangeLog
+++ b/abs/core-testing/tcl/ChangeLog
@@ -1,10 +1,16 @@
-2008-08-16 Allan McRae <allan@archlinux.org>
+2008-12-24  Allan McRae <allan@archlinux.org>
+	* 8.5.6-1 :
+	new upstream release
+
+2008-10-16  Allan McRae <allan@archlinux.org>
+	* 8.5.5-1 :
+	new upstream release
 
+2008-08-16  Allan McRae <allan@archlinux.org>
 	* 8.5.4-1 :
 	new upstream release
 	FHS man directory
 
-2008-07-01 Allan McRae <allan@archlinux.org>
-
+2008-07-01  Allan McRae <allan@archlinux.org>
 	* 8.5.3-1 :
 	new upstream release.
diff --git a/abs/core-testing/tcl/PKGBUILD b/abs/core-testing/tcl/PKGBUILD
index ec911bb..bcf3ab2 100644
--- a/abs/core-testing/tcl/PKGBUILD
+++ b/abs/core-testing/tcl/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 8742 2008-08-16 05:01:49Z allan $
+# $Id: PKGBUILD 22246 2008-12-24 10:50:10Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Committer: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=tcl
-pkgver=8.5.4
+pkgver=8.5.6
 pkgrel=1
 pkgdesc="The Tcl scripting language"
 arch=('i686' 'x86_64')
 license=('custom')
-depends=(glibc)
+depends=('glibc')
 source=(http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.gz)
 url="http://tcl.sourceforge.net/"
-md5sums=('15032a6a43f3bfbe9223b95186849472')
+md5sums=('d0b0b3ff7600ff63135c710b575265cd')
 
 build() {
   cd ${srcdir}/tcl${pkgver}/unix
diff --git a/abs/core-testing/tdb/PKGBUILD b/abs/core-testing/tdb/PKGBUILD
index 1714862..88f37dc 100644
--- a/abs/core-testing/tdb/PKGBUILD
+++ b/abs/core-testing/tdb/PKGBUILD
@@ -1,29 +1,28 @@
-# $Id: PKGBUILD 14092 2008-10-03 15:43:08Z tpowa $
+# $Id: PKGBUILD 22194 2008-12-22 21:57:23Z tpowa $
 # Maintainer: eric <eric@archlinux.org>
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=tdb
-pkgver=3.2.4
-pkgrel=1
+pkgver=3.2.6
+pkgrel=2
 # We use the 'A' to fake out pacman's version comparators.  Samba chooses
 # to append 'a','b',etc to their subsequent releases, which pamcan
 # misconstrues as alpha, beta, etc.  Bad samba!
-_realver=3.2.4
+_realver=3.2.6
 pkgdesc="A Trivial Database similar to GDBM but allows simultaneous commits"
 arch=(i686 x86_64)
 license=('GPL3')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
 url="www.samba.org"
 source=(http://us1.samba.org/samba/ftp/samba-${_realver}.tar.gz)
 options=(!makeflags)
 
 build() {
-   cd ${startdir}/src/samba-${_realver}/source/lib/tdb
+   cd ${srcdir}/samba-${_realver}/source/lib/tdb
    ./autogen.sh
    ./configure --prefix=/usr
    make || return 1
    make DESTDIR=$startdir/pkg install
-   ln -sf /usr/lib/libtdb.so.1.1.1 $startdir/pkg/usr/lib/libtdb.so.1
-   ln -sf /usr/lib/libtdb.so.1.1.1 $startdir/pkg/usr/lib/libtdb.so
+   ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so.1
+   ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so
 }
-md5sums=('7870a6bb3a025c6081cd56688acd494a')
+md5sums=('0cd27c7afbb8211616eea4010f32271c')
diff --git a/abs/core-testing/tk/ChangeLog b/abs/core-testing/tk/ChangeLog
index 83abeb6..fc2998f 100644
--- a/abs/core-testing/tk/ChangeLog
+++ b/abs/core-testing/tk/ChangeLog
@@ -1,16 +1,21 @@
-2008-08-20 Allan McRae <allan@archlinux.org>
+2008-12-24  Allan McRae <allan@archlinux.org>
+	* 8.5.6-1 :
+	new upstream release
+
+2008-10-16  Allan McRae <allan@archlinux.org>
+	* 8.5.5-1 :
+	new upstream release
 
+2008-08-20  Allan McRae <allan@archlinux.org>
 	* 8.5.4-2 :
 	Remove xproto compatibility patch as no longer needed
 
-2008-08-16 Allan McRae <allan@archlinux.org>
-
+2008-08-16  Allan McRae <allan@archlinux.org>
 	* 8.5.4-1 :
 	new upstream release
 	FHS man pages
 
-2008-07-01 Allan McRae <allan@archlinux.org>
-
+2008-07-01  Allan McRae <allan@archlinux.org>
 	* 8.5.3-1 :
 	new upstream release
 	added patch for xproto-7.0.13 compatibility
diff --git a/abs/core-testing/tk/PKGBUILD b/abs/core-testing/tk/PKGBUILD
index 80299e6..3c75949 100644
--- a/abs/core-testing/tk/PKGBUILD
+++ b/abs/core-testing/tk/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 9873 2008-08-20 08:29:04Z allan $
+# $Id: PKGBUILD 22248 2008-12-24 10:55:13Z allan $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=tk
-pkgver=8.5.4
-pkgrel=2
+pkgver=8.5.6
+pkgrel=1
 pkgdesc="A windowing toolkit for use with tcl"
 arch=('i686' 'x86_64')
 url="http://tcl.sourceforge.net/"
 license=('custom')
 depends=("tcl=${pkgver}" 'libxss' 'libxft')
 source=(http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz)
-md5sums=('a6aee7653566ec0b7c4b0f4c24a96f20')
+md5sums=('7da2e00adddc7eed6080df904579d94e')
 
 build() {
   cd ${srcdir}/tk${pkgver}/unix  
diff --git a/abs/core-testing/ttf-dejavu/ChangeLog b/abs/core-testing/ttf-dejavu/ChangeLog
index 5c02e9f..b3cf284 100644
--- a/abs/core-testing/ttf-dejavu/ChangeLog
+++ b/abs/core-testing/ttf-dejavu/ChangeLog
@@ -1,3 +1,13 @@
+2008-12-22  Alexander Fehr  <pizzapunk gmail com>
+
+  * ttf-dejavu-2.28-1:
+  New upstream release.
+
+2008-11-26  Alexander Fehr  <pizzapunk gmail com>
+
+  * ttf-dejavu-2.27-1:
+  New upstream release.
+
 2008-07-29  Alexander Fehr  <pizzapunk gmail com>
 
   * ttf-dejavu-2.26-1:
diff --git a/abs/core-testing/ttf-dejavu/PKGBUILD b/abs/core-testing/ttf-dejavu/PKGBUILD
index 5cbbecc..93356a5 100644
--- a/abs/core-testing/ttf-dejavu/PKGBUILD
+++ b/abs/core-testing/ttf-dejavu/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 7356 2008-07-31 01:07:11Z alexanderf $
+# $Id: PKGBUILD 22203 2008-12-22 23:29:26Z alexanderf $
 # Maintainer: Alexander Fehr <pizzapunk gmail com>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 # Contributor: Michal Krenek <mikos@sg1.cz>
 
 pkgname=ttf-dejavu
-pkgver=2.26
+pkgver=2.28
 pkgrel=1
 pkgdesc="Font family based on the Bitstream Vera Fonts with a wider range of characters"
 arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ license=('custom')
 depends=('fontconfig' 'xorg-fonts-encodings')
 install=ttf-dejavu.install
 source=(http://downloads.sourceforge.net/dejavu/dejavu-fonts-ttf-$pkgver.tar.bz2)
-md5sums=('bff450e8c1b3c9a3f38294ac44d81adc')
+md5sums=('10002ae52fbad207641d1fd2bf9bf4b8')
 
 build() {
   cd "$srcdir/dejavu-fonts-ttf-$pkgver"
diff --git a/abs/core-testing/udev/PKGBUILD b/abs/core-testing/udev/PKGBUILD
index 53250cc..f24e308 100644
--- a/abs/core-testing/udev/PKGBUILD
+++ b/abs/core-testing/udev/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 14541 2008-10-08 07:37:32Z tpowa $
+# $Id: PKGBUILD 22190 2008-12-22 18:25:11Z tpowa $
 # Maintainer: Aaron Griffin <aaron@archlinux.org>
 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Maintainer: Thomas Bächler <thomas@archlinux.org>
 pkgname=udev
-pkgver=130
+pkgver=135
 pkgrel=1
 pkgdesc="The userspace dev tools (udev)"
 arch=(i686 x86_64)
@@ -25,13 +25,13 @@ options=(!makeflags)
 source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
         81-arch.rules load-modules.sh resolve-modalias.c cdsymlinks.sh root-link.sh
         arch-udev-rules.patch readme-udev-arch.txt)
-md5sums=('eaaac3c45b8c87d81a82fed254ecee25'
+md5sums=('661b9df34e1304dad10f595d95b472bb'
          '3a955ca8e2122a48a223f9d8adf87b70'
          'f4951f61438d69894b728212dac7318b'
          'fca04a608009069beb786e26338a783b'
          '8424b78e9dd772e75b4ef90814807815'
          '2d6dc6842464f107bccc68cd505a6c31'
-         'beb8ebffc3652584363804e41445ba17'
+         'ae216c26a6a5cae4a3ef9c0e1f7bfaa6'
          '7fc6d33bb218e752302eef0a80ff0a89')
 
 build() {
diff --git a/abs/core-testing/udev/arch-udev-rules.patch b/abs/core-testing/udev/arch-udev-rules.patch
index 22f9d1b..b672731 100644
--- a/abs/core-testing/udev/arch-udev-rules.patch
+++ b/abs/core-testing/udev/arch-udev-rules.patch
@@ -5,21 +5,19 @@ diff -Nur rules.d/60-persistent-storage.rules rules.d.arch/60-persistent-storage
  SUBSYSTEM!="block", GOTO="persistent_storage_end"
  
  # skip rules for inappropriate block devices
--KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*", GOTO="persistent_storage_end"
-+KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*", GOTO="persistent_storage_end"
+-KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-*|md*|btibm*", GOTO="persistent_storage_end"
++KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|md*|btibm*", GOTO="persistent_storage_end"
  
  # never access non-cdrom removable ide devices, the drivers are causing event loops on open()
  KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", GOTO="persistent_storage_end"
 diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules
 --- rules.d/80-drivers.rules	2008-09-12 15:59:57.000000000 +0200
 +++ rules.d.arch/80-drivers.rules	2008-09-12 16:01:56.000000000 +0200
-@@ -2,16 +2,17 @@
+@@ -2,14 +2,16 @@
  
  ACTION!="add", GOTO="drivers_end"
  
 -DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/sbin/modprobe $env{MODALIAS}"
--SUBSYSTEM=="pnp", DRIVER!="?*", ENV{MODALIAS}!="?*", \
--  RUN{ignore_error}+="/bin/sh -c '/sbin/modprobe -a $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"
 -SUBSYSTEM=="tifm", RUN+="/sbin/modprobe --all tifm_sd tifm_ms"
 -SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
 -SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
@@ -28,7 +26,6 @@ diff -Nur rules.d/80-drivers.rules rules.d.arch/80-drivers.rules
 -SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
 -SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/sbin/modprobe ppdev"
 +DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{ignore_error}+="/lib/udev/load-modules.sh $env{MODALIAS}"
-+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", DRIVER!="?*", RUN{ignore_error}+="/bin/sh -c 'while read id; do /lib/udev/load-modules.sh pnp:d$$id; /lib/udev/load-modules.sh pnp:c$$id ; done < /sys$devpath/id'"
 +SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_sd"
 +SUBSYSTEM=="tifm", RUN+="/lib/udev/load-modules.sh tifm_ms"
 +SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
@@ -72,42 +69,33 @@ diff -Nur rules.d/50-udev-default.rules rules.d.arch/50-udev-default.rules
  
  # input
  KERNEL=="mouse*|mice|event*",	NAME="input/%k", MODE="0640"
-@@ -29,20 +35,25 @@
- 
- # video4linux
+@@ -36,13 +36,18 @@
+ KERNEL=="vtx*|vbi*",		GROUP="video"
+ KERNEL=="winradio*",		GROUP="video"
  KERNEL=="vbi0",			SYMLINK+="vbi"
-+KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k", GROUP="video"
- KERNEL=="radio0",		SYMLINK+="radio"
+-KERNEL=="radio0",		SYMLINK+="radio"
++KERNEL=="vbi[0-9]*",   NAME="v4l/vbi%n", SYMLINK+="%k"
++KERNEL=="radio0",		SYMLINK+="video"
 +KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video"
  KERNEL=="video0",		SYMLINK+="video"
-+KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
++KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k"
 +KERNEL=="vtx0", SYMLINK+="vtx"
-+KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k", GROUP="video"
++KERNEL=="vtx[0-9]*",   NAME="v4l/vtx%n", SYMLINK+="%k"
  
  # graphics
--KERNEL=="agpgart",		MODE="0600"
+-KERNEL=="agpgart",		MODE="0600", GROUP="video"
 -KERNEL=="card[0-9]*",		NAME="dri/%k", MODE="0666"
 -KERNEL=="fb0",			SYMLINK+="fb"
 +KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k", GROUP="video", MODE="0600"
 +KERNEL=="card[0-9]*",		NAME="dri/%k", GROUP="video", MODE="0666"
 +KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video"
- 
- # DVB video
--SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c"
-+SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
- 
- # Firewire
--KERNEL=="dv1394*",		SYMLINK+="dv1394/%n"
--KERNEL=="video1394*",		NAME="video1394/%n"
-+KERNEL=="dv1394*",		SYMLINK+="dv1394/%n", GROUP="video"
-+KERNEL=="video1394*",		NAME="video1394/%n", GROUP="video"
- 
- # firmware class requests
- SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
+ KERNEL=="pmu",			GROUP="video"
+ KERNEL=="nvidia*|nvidiactl*",	GROUP="video"
+ SUBSYSTEM=="graphics",		GROUP="video"
 @@ -62,19 +73,19 @@
+ # block, tapes, block-releated
+ SUBSYSTEM=="block", GROUP="disk"
  SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n"
- SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
- SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
 -KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
 +KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions", GROUP="floppy"
  KERNEL=="fd[0-9]",		GROUP="floppy"
diff --git a/abs/core-testing/unichrome-dri/PKGBUILD b/abs/core-testing/unichrome-dri/PKGBUILD
index c51bb2b..2870c39 100644
--- a/abs/core-testing/unichrome-dri/PKGBUILD
+++ b/abs/core-testing/unichrome-dri/PKGBUILD
@@ -1,40 +1,38 @@
-# $Id: PKGBUILD 1898 2008-05-22 18:05:23Z jgc $
+# $Id: PKGBUILD 13002 2008-09-25 18:36:29Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=unichrome-dri
-pkgver=7.0.3
-_mesaver=7.0.3
+pkgver=7.2
 pkgrel=1
 pkgdesc="DRI drivers for Unichrome-based videochipsets"
 arch=(i686 x86_64)
-license=('GPL')
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0' 'expat>=2.0')
-makedepends=('imake' 'mesa>=7.0.3' 'glproto>=1.4.9')
+depends=('libdrm>=2.3.1' 'expat>=2.0.1' 'libgl>=7.1-2')
+makedepends=('dri2proto>=1.1' 'glproto>=1.4.9' 'pkgconfig' 'libxfixes' 'libxdamage' 'libxxf86vm' 'libxext')
 options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2)
+source=(http://downloads.sourceforge.net/mesa3d/MesaLib-${pkgver}.tar.bz2
+	mesa-7.1-link-shared.patch)
+md5sums=('04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
-  cd ${startdir}/src/Mesa-${_mesaver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = unichrome" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd ${srcdir}/Mesa-${pkgver}
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch
+  export CFLAGS="${CFLAGS} -ffast-math"
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=unichrome \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  rm -rf ${pkgdir}/usr/include
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
 }
-md5sums=('e6e6379d7793af40a6bc3ce1bace572e')
diff --git a/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch b/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/unichrome-dri/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/v4l-dvb/PKGBUILD b/abs/core-testing/v4l-dvb/PKGBUILD
index 8db31a2..10ef694 100644
--- a/abs/core-testing/v4l-dvb/PKGBUILD
+++ b/abs/core-testing/v4l-dvb/PKGBUILD
@@ -2,9 +2,9 @@
 # Maintainer: Cecil Watson<knoppmyth@gmail.com>
 
 pkgname=v4l-dvb
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 pkgver=1
-pkgrel=1
+pkgrel=3
 pkgdesc="V4L-DVB drivers from mercurial"
 arch=('i686' 'x86_64')
 license=('GPL2')
diff --git a/abs/core-testing/v4l-dvb/v4l-dvb.install b/abs/core-testing/v4l-dvb/v4l-dvb.install
index c87bb82..1c17557 100644
--- a/abs/core-testing/v4l-dvb/v4l-dvb.install
+++ b/abs/core-testing/v4l-dvb/v4l-dvb.install
@@ -1,20 +1,20 @@
 # arg 1:  the new package version
 post_install() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                
 }
 
 # arg 1:  the new package version
 # arg 2:  the old package version
 post_upgrade() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
 
 }
 
 # arg 1:  the old package version
 post_remove() {
-  KERNEL_VERSION='2.6.26-ARCH'
+  KERNEL_VERSION='2.6.27-ARCH'
   depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
 }
 
diff --git a/abs/core-testing/xf86-input-aiptek/PKGBUILD b/abs/core-testing/xf86-input-aiptek/PKGBUILD
index f3d5b39..509eba6 100644
--- a/abs/core-testing/xf86-input-aiptek/PKGBUILD
+++ b/abs/core-testing/xf86-input-aiptek/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 10857 2008-08-31 13:24:55Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-aiptek
-pkgver=1.0.1
-pkgrel=4
+pkgver=1.1.1
+pkgrel=1
 pkgdesc="X.Org Aiptek USB Digital Tablet input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('951b2b1a270f67d28e2e89fd2b9f15ae')
+md5sums=('2aa75313ea5652a8cf93581c65ee6493')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-calcomp/PKGBUILD b/abs/core-testing/xf86-input-calcomp/PKGBUILD
index b18d89c..2792455 100644
--- a/abs/core-testing/xf86-input-calcomp/PKGBUILD
+++ b/abs/core-testing/xf86-input-calcomp/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11000 2008-08-31 13:46:51Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-calcomp
-pkgver=1.1.1
+pkgver=1.1.2
 pkgrel=1
 pkgdesc="X.Org CalComp Drawing Board input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ebc9a64dc72ae3015c16011bbd2d3557')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('689099e2ade8a8c9f68f82fdf569b3ad')
diff --git a/abs/core-testing/xf86-input-digitaledge/PKGBUILD b/abs/core-testing/xf86-input-digitaledge/PKGBUILD
index 2017d0f..fcdfd1a 100644
--- a/abs/core-testing/xf86-input-digitaledge/PKGBUILD
+++ b/abs/core-testing/xf86-input-digitaledge/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11039 2008-08-31 13:50:33Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-digitaledge
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.1.1
+pkgrel=1
 pkgdesc="X.Org Digital Edge Tablet input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('53461c34cc0712aacab92b820b9fcb84')
+md5sums=('4c27e0f3c6447e76df39a837fd46a00f')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-dmc/PKGBUILD b/abs/core-testing/xf86-input-dmc/PKGBUILD
index 5839019..afc4e86 100644
--- a/abs/core-testing/xf86-input-dmc/PKGBUILD
+++ b/abs/core-testing/xf86-input-dmc/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11060 2008-08-31 13:52:40Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-dmc
-pkgver=1.1.1
+pkgver=1.1.2
 pkgrel=1
 pkgdesc="X.Org DMC FIT10 serial input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('91021ea8f3593221c0d9ee9cc14deb48')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('f21f008220bc7687ce1c34ab557ec32f')
diff --git a/abs/core-testing/xf86-input-dynapro/PKGBUILD b/abs/core-testing/xf86-input-dynapro/PKGBUILD
index 467e05d..4043a9f 100644
--- a/abs/core-testing/xf86-input-dynapro/PKGBUILD
+++ b/abs/core-testing/xf86-input-dynapro/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11063 2008-08-31 13:54:38Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-dynapro
-pkgver=1.1.1
+pkgver=1.1.2
 pkgrel=1
 pkgdesc="X.org DynaPro Touch Screen input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ceb5efbd3d62e24ab3a5f9f180777f7c')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('d47be12a230c44a05d56d6b79ebcfc38')
diff --git a/abs/core-testing/xf86-input-elographics/PKGBUILD b/abs/core-testing/xf86-input-elographics/PKGBUILD
index 374fcaa..1b48f31 100644
--- a/abs/core-testing/xf86-input-elographics/PKGBUILD
+++ b/abs/core-testing/xf86-input-elographics/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 3250 2008-06-21 18:18:33Z jgc $
+# $Id: PKGBUILD 17524 2008-10-30 22:03:55Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-elographics
-pkgver=1.2.2
+pkgver=1.2.3
 pkgrel=1
 pkgdesc="X.org Elographics TouchScreen input driver"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.2')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('50a9c32af12ca4733afe23042f012f9c')
+md5sums=('cc2923460c8eff9652b01889a063058d')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-input-evdev/PKGBUILD b/abs/core-testing/xf86-input-evdev/PKGBUILD
index 0745861..1a1f167 100644
--- a/abs/core-testing/xf86-input-evdev/PKGBUILD
+++ b/abs/core-testing/xf86-input-evdev/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 3693 2008-06-29 11:05:37Z jgc $
+# $Id: PKGBUILD 20574 2008-12-05 20:53:20Z jgc $
 # Maintainer: Alexander Baldeck <Alexander@archlinux.org
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-evdev
-pkgver=2.0.1
+pkgver=2.1.0
 pkgrel=1
 pkgdesc="X.org evdev input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
+license=('custom')
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'inputproto>=1.4.3' 'randrproto>=1.2.1')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'inputproto>=1.4.4' 'randrproto>=1.2.1')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('061c4558316b1ec9ee71478bdf68b10c')
+md5sums=('a6070ead29b2d81b5b386a96df2661b8')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-input-fpit/PKGBUILD b/abs/core-testing/xf86-input-fpit/PKGBUILD
index c8931e9..280ca28 100644
--- a/abs/core-testing/xf86-input-fpit/PKGBUILD
+++ b/abs/core-testing/xf86-input-fpit/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11093 2008-08-31 13:58:34Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-fpit
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.Org Fujitsu Stylistic Tablet PC input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a31066a2076d18619ceaea67f6d89698')
+md5sums=('0f3e013d5ff58e0aba3d9e1d18830291')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-hyperpen/PKGBUILD b/abs/core-testing/xf86-input-hyperpen/PKGBUILD
index 8873552..b06636b 100644
--- a/abs/core-testing/xf86-input-hyperpen/PKGBUILD
+++ b/abs/core-testing/xf86-input-hyperpen/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11115 2008-08-31 14:01:17Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-hyperpen
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.Org HyperPen Tablet input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('1dfccb75069e61e0c6f990b47eb58c40')
+md5sums=('175c1e1ad668ebbbe212c1e975dd14f9')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-jamstudio/PKGBUILD b/abs/core-testing/xf86-input-jamstudio/PKGBUILD
index 28be4e1..35036e2 100644
--- a/abs/core-testing/xf86-input-jamstudio/PKGBUILD
+++ b/abs/core-testing/xf86-input-jamstudio/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11114 2008-08-31 14:00:38Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-jamstudio
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.Org KB-Gear JamStudio pentablet input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a32e36a24545791a3408cdc5563b6523')
+md5sums=('8011f90d7dd801d26e8c3dd058633978')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-joystick/PKGBUILD b/abs/core-testing/xf86-input-joystick/PKGBUILD
index e2146e8..de6f6e3 100644
--- a/abs/core-testing/xf86-input-joystick/PKGBUILD
+++ b/abs/core-testing/xf86-input-joystick/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 23023 2009-01-01 16:35:00Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-joystick
-pkgver=1.3.1
+pkgver=1.4.0
 pkgrel=1
 pkgdesc="X.Org Joystick input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('600bca5bd96a0dee90e20b606aa1eb93')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('ff25ea697cfa1570cc28f4b9cf9c761f')
diff --git a/abs/core-testing/xf86-input-magellan/PKGBUILD b/abs/core-testing/xf86-input-magellan/PKGBUILD
index 324c0be..9ed417a 100644
--- a/abs/core-testing/xf86-input-magellan/PKGBUILD
+++ b/abs/core-testing/xf86-input-magellan/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11137 2008-08-31 14:03:11Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-magellan
-pkgver=1.1.1
+pkgver=1.2.0
 pkgrel=1
 pkgdesc="X.Org Magellan Space mouse input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('9801ba10f15f8be2420dfb3f3b5d5d27')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('8a966d3b74dc2a801ff09b895037090c')
diff --git a/abs/core-testing/xf86-input-magictouch/PKGBUILD b/abs/core-testing/xf86-input-magictouch/PKGBUILD
index fdd4a4a..70c417e 100644
--- a/abs/core-testing/xf86-input-magictouch/PKGBUILD
+++ b/abs/core-testing/xf86-input-magictouch/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 20562 2008-12-05 20:36:01Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-magictouch
@@ -15,9 +15,8 @@ source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
 md5sums=('d23f2791cd634ef85b7cc5e9da8f8407')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-input-microtouch/PKGBUILD b/abs/core-testing/xf86-input-microtouch/PKGBUILD
index be6b234..5984af1 100644
--- a/abs/core-testing/xf86-input-microtouch/PKGBUILD
+++ b/abs/core-testing/xf86-input-microtouch/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11144 2008-08-31 14:03:49Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-microtouch
-pkgver=1.1.1
+pkgver=1.2.0
 pkgrel=1
 pkgdesc="X.org microtouch input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1ad1aee7d8df84b9ea832d1e75963257')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('9843fbea6cc0c4129e96ce9a6c893cf6')
diff --git a/abs/core-testing/xf86-input-mutouch/PKGBUILD b/abs/core-testing/xf86-input-mutouch/PKGBUILD
index 36da1e3..ce27c8e 100644
--- a/abs/core-testing/xf86-input-mutouch/PKGBUILD
+++ b/abs/core-testing/xf86-input-mutouch/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 15051 2008-10-12 12:28:57Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-mutouch
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.1
+pkgrel=1
 pkgdesc="X.org mutouch input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.5.2')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('98ae915c67cabf0e6d40a425dbdbe10b')
+md5sums=('f28998cdfae2a4c41589299a4ee1f459')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-input-palmax/PKGBUILD b/abs/core-testing/xf86-input-palmax/PKGBUILD
index ff5c4b2..45c4da1 100644
--- a/abs/core-testing/xf86-input-palmax/PKGBUILD
+++ b/abs/core-testing/xf86-input-palmax/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11159 2008-08-31 14:05:43Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-palmax
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.org palmax input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('0959dbf7972dfb95f56e4bd3f56447cf')
+md5sums=('9655d2235569c5a6ac321c6fb89a6f3b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-penmount/PKGBUILD b/abs/core-testing/xf86-input-penmount/PKGBUILD
index 062401f..b036796 100644
--- a/abs/core-testing/xf86-input-penmount/PKGBUILD
+++ b/abs/core-testing/xf86-input-penmount/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11167 2008-08-31 14:06:53Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-penmount
-pkgver=1.2.1
+pkgver=1.3.0
 pkgrel=1
 pkgdesc="X.org penmount input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('268af4dceda544d8c815b9b7e87d4536')
+md5sums=('24594c0222e631fedccc7c540c420b03')
diff --git a/abs/core-testing/xf86-input-summa/PKGBUILD b/abs/core-testing/xf86-input-summa/PKGBUILD
index 9b0c9ef..abbae8a 100644
--- a/abs/core-testing/xf86-input-summa/PKGBUILD
+++ b/abs/core-testing/xf86-input-summa/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11181 2008-08-31 14:11:07Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-summa
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.org summa input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 options=('!libtool')
 groups=('xorg-input-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('b37a432fd87bb9f46d011622d6fce6b3')
+md5sums=('7e17468c0d90dcbbb6202a8242efff4b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-synaptics/PKGBUILD b/abs/core-testing/xf86-input-synaptics/PKGBUILD
new file mode 100644
index 0000000..f92e0fd
--- /dev/null
+++ b/abs/core-testing/xf86-input-synaptics/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 22376 2008-12-26 16:24:10Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Powalowski  <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xf86-input-synaptics
+pkgver=0.99.3
+pkgrel=1
+pkgdesc="synaptics driver for notebook touchpads"
+arch=(i686 x86_64)
+license=('custom')
+url="http://w1.894.telia.com/~u89404340/touchpad/"
+depends=('libx11')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+replaces=('synaptics')
+provides=('synaptics')
+conflicts=('synaptics')
+options=(!libtool)
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('735a798e0f68c65d98e3d6b092b56d29')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor"
+  install -m644 fdi/*.fdi "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/" || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/abs/core-testing/xf86-input-tek4957/PKGBUILD b/abs/core-testing/xf86-input-tek4957/PKGBUILD
index 2ea7a0f..afa4498 100644
--- a/abs/core-testing/xf86-input-tek4957/PKGBUILD
+++ b/abs/core-testing/xf86-input-tek4957/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11210 2008-08-31 14:13:46Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-tek4957
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.org tek4957 input driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('be8a4bd474ad6c85b93f66dd6fcfa6ee')
+md5sums=('8103db1ca5c55726e0b58148e4b1fc06')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-input-ur98/PKGBUILD b/abs/core-testing/xf86-input-ur98/PKGBUILD
index 8fcafc0..6c1ec76 100644
--- a/abs/core-testing/xf86-input-ur98/PKGBUILD
+++ b/abs/core-testing/xf86-input-ur98/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 20489 2008-12-05 10:09:15Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-ur98
@@ -15,9 +15,8 @@ source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
 md5sums=('3cf8928411458baaa9e726e51772c550')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-input-vmmouse/PKGBUILD b/abs/core-testing/xf86-input-vmmouse/PKGBUILD
index 55eed97..6b0ef90 100644
--- a/abs/core-testing/xf86-input-vmmouse/PKGBUILD
+++ b/abs/core-testing/xf86-input-vmmouse/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22273 2008-12-25 16:56:34Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-input-vmmouse
-pkgver=12.4.3
+pkgver=12.6.3
 pkgrel=1
 pkgdesc="X.org VMWare Mouse input driver"
 arch=(i686 x86_64)
+license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f5933143d7789557983ecb527092d14e')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
-md5sums=('44730af795616ed4d4a0cd9a3a07935d')
diff --git a/abs/core-testing/xf86-input-void/PKGBUILD b/abs/core-testing/xf86-input-void/PKGBUILD
index d2d5b2b..ce4b0cf 100644
--- a/abs/core-testing/xf86-input-void/PKGBUILD
+++ b/abs/core-testing/xf86-input-void/PKGBUILD
@@ -1,23 +1,25 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11237 2008-08-31 14:17:19Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-void
-pkgver=1.1.0
-pkgrel=2
+pkgver=1.1.1
+pkgrel=1
 pkgdesc="X.org void input driver"
 arch=(i686 x86_64)
+license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-input-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('ea72a92d43b95f413347df96d6a73933')
+md5sums=('862c230f5f6e0c545f232b4c0fa9537a')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
diff --git a/abs/core-testing/xf86-video-amd/PKGBUILD b/abs/core-testing/xf86-video-amd/PKGBUILD
index 1bf6f62..fa31ce0 100644
--- a/abs/core-testing/xf86-video-amd/PKGBUILD
+++ b/abs/core-testing/xf86-video-amd/PKGBUILD
@@ -1,27 +1,28 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11397 2008-08-31 14:36:04Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xf86-video-amd
-pkgver=2.7.7.6
+pkgver=2.7.7.7
 pkgrel=1
 pkgdesc="X.org AMD/Geode LX & NX video driver"
 # there is no 64bit geode yet!
 arch=(i686)
+license=('custom')
 url="http://xorg.freedesktop.org/"
-makedepends=('pkgconfig' 'xorg-server>=1.4')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 options=('!libtool')
-license=('custom:amd')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2f3e8c3019afda926e7ab95b074c35e1')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
   ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST} \
-	      --enable-visibility
+	      --enable-visibility || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 
-  install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \
-                   ${startdir}/pkg/usr/share/licenses/${pkgname}/COPYING
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
-md5sums=('e839cc4552032b7bd44beb72e575980f')
diff --git a/abs/core-testing/xf86-video-apm/PKGBUILD b/abs/core-testing/xf86-video-apm/PKGBUILD
index 7808dbc..4ed1cff 100644
--- a/abs/core-testing/xf86-video-apm/PKGBUILD
+++ b/abs/core-testing/xf86-video-apm/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 3262 2008-06-21 18:38:40Z jgc $
+# $Id: PKGBUILD 22289 2008-12-25 17:19:55Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-apm
-pkgver=1.2.0
+pkgver=1.2.1
 pkgrel=1
 pkgdesc="X.org Alliance ProMotion video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('673c93df004bb857dc89ae9c78ccf907')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('4f78650d79656dc803a720049d65682e')
diff --git a/abs/core-testing/xf86-video-ark/PKGBUILD b/abs/core-testing/xf86-video-ark/PKGBUILD
index cbe38bd..288686c 100644
--- a/abs/core-testing/xf86-video-ark/PKGBUILD
+++ b/abs/core-testing/xf86-video-ark/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 3260 2008-06-21 18:36:28Z jgc $
+# $Id: PKGBUILD 22271 2008-12-25 16:54:52Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-ark
-pkgver=0.7.0
+pkgver=0.7.1
 pkgrel=1
 pkgdesc="X.org ark video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('be91391f061863617018403cdbd2944f')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('6826c556ebe9a1248cbc7f7edd44f956')
diff --git a/abs/core-testing/xf86-video-ati/PKGBUILD b/abs/core-testing/xf86-video-ati/PKGBUILD
index c95c021..79faa91 100644
--- a/abs/core-testing/xf86-video-ati/PKGBUILD
+++ b/abs/core-testing/xf86-video-ati/PKGBUILD
@@ -1,51 +1,32 @@
-# $Id: PKGBUILD 3261 2008-06-21 18:38:23Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 22423 2008-12-26 19:32:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
 pkgname=xf86-video-ati
-pkgver=6.8.0
-pkgrel=4
-_mesaver="7.0.3"
+pkgver=6.9.0
+pkgrel=6
 pkgdesc="X.org ati video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4' 'imake' 'mesa>=7.0.3'
-	     'glproto>=1.4.9' 'xf86driproto' 'diffutils')
+depends=('libdrm>=2.3.1' 'libgl>=7.2' 'libpciaccess' 'ati-dri>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.0' 'fontsproto'
+	     'glproto>=1.4.9' 'xf86driproto' 'diffutils' 'xorg-util-macros')
+conflicts=('xorg-server<1.5.0')
 groups=('xorg-video-drivers')
 options=('!libtool')
-license=('custom')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2)
+       git-20081021.patch)
+md5sums=('afa4873f58ae6fa31fedeb9ed31531db'
+	 'f2ce4e7fb4e266bbc61fb2d9c7c20a3b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/git-20081021.patch" || return 1
+  libtoolize --force --copy || return 1
+  aclocal || return 1
+  autoconf || return 1
+  automake || return 1
   ./configure --prefix=/usr \
-              --enable-dri
+              --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-
-  cd ${startdir}/src/Mesa-${_mesaver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  # currently commented, see FS#7590 for details
-  #echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = r128 radeon r200 r300" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  make "DESTDIR=${pkgdir}" install || return 1
 }
-md5sums=('3c97c7925ebf4162eeb3463e23adc0e3'
-         'e6e6379d7793af40a6bc3ce1bace572e')
diff --git a/abs/core-testing/xf86-video-ati/git-20081021.patch b/abs/core-testing/xf86-video-ati/git-20081021.patch
new file mode 100644
index 0000000..b3a1baf
--- /dev/null
+++ b/abs/core-testing/xf86-video-ati/git-20081021.patch
@@ -0,0 +1,17245 @@
+diff --git a/man/radeon.man b/man/radeon.man
+index 03622a0..68029ed 100644
+--- a/man/radeon.man
++++ b/man/radeon.man
+@@ -283,7 +283,8 @@ The default value is
+ .BI "Option \*qEnablePageFlip\*q \*q" boolean \*q
+ Enable page flipping for 3D acceleration. This will increase performance
+ but not work correctly in some rare cases, hence the default is
+-.B off.
++.B off.  
++It is currently only supported on r4xx and older hardware.
+ .TP
+ .BI "Option \*qForceMinDotClock\*q \*q" frequency \*q
+ Override minimum dot clock. Some Radeon BIOSes report a minimum dot
+@@ -297,10 +298,9 @@ parameter may be specified as a float value with standard suffixes like
+ "k", "kHz", "M", "MHz".
+ .TP
+ .BI "Option \*qRenderAccel\*q \*q" boolean \*q
+-Enables or disables hardware Render acceleration.  This driver does not
+-support component alpha (subpixel) rendering.  It is only supported on
+-Radeon series up to and including 9200 (9500/9700 and newer
+-unsupported).  The default is to
++Enables or disables hardware Render acceleration.  It is supported on
++Radeon series up to and including r5xx for EXA and up to and 
++including r2xx for XAA.  The default is to
+ .B enable
+ Render acceleration.
+ .TP
+diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c
+index 509aa0c..58c4ae9 100644
+--- a/src/AtomBios/CD_Operations.c
++++ b/src/AtomBios/CD_Operations.c
+@@ -44,7 +44,6 @@ Revision History:
+ #include "xorg-server.h"
+ 
+ #include "Decoder.h"
+-#include	"atombios.h"
+ 
+ VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
+ VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
+@@ -231,7 +230,7 @@ UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ 		IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].func(pParserTempData);
+ 		pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize;
+ 	    }
+-	    pParserTempData->IndirectIOTablePointer-=*(UINT16*)(pParserTempData->IndirectIOTablePointer+1);
++	    pParserTempData->IndirectIOTablePointer-=UINT16LE_TO_CPU(*(UINT16*)(pParserTempData->IndirectIOTablePointer+1));
+ 	    pParserTempData->IndirectIOTablePointer++;
+ 	    return pParserTempData->IndirectData;
+ 	} else pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize;
+@@ -243,7 +242,7 @@ UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ 
+ VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+-    pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.WordXX.PA_Destination;
++    pParserTempData->Index=(UINT32)UINT16LE_TO_CPU(pParserTempData->pCmd->Parameters.WordXX.PA_Destination);
+     pParserTempData->Index+=pParserTempData->CurrentRegBlock;
+     switch(pParserTempData->Multipurpose.CurrentPort){
+ 	case ATI_RegsPort:
+@@ -269,16 +268,16 @@ VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+     *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)=
+-	pParserTempData->DestData32;
++	    CPU_TO_UINT32LE(pParserTempData->DestData32);
+ }
+ 
+ VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+     if (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination < WS_QUOTIENT_C)
+-	*(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) = pParserTempData->DestData32;
++      *(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) = pParserTempData->DestData32;
+     else
+-	switch (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)
+-	{
++	  switch (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)
++	  {
+ 	    case WS_REMINDER_C:
+ 		pParserTempData->MultiplicationOrDivision.Division.Reminder32=pParserTempData->DestData32;
+ 		break;
+@@ -339,7 +338,7 @@ VOID SkipParameters16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ 
+ UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ {
+-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP);
+     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
+     pParserTempData->Index+=pParserTempData->CurrentRegBlock;
+     switch(pParserTempData->Multipurpose.CurrentPort)
+@@ -361,9 +360,11 @@ UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ 
+ UINT32 GetParametersPS(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ {
++    UINT32 data;
+     pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
+     pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
+-    return *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->Index);
++    data = UINT32LE_TO_CPU(*(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->Index));
++    return data;
+ }
+ 
+ UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+@@ -419,9 +420,12 @@ UINT32 GetParametersMC(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ 
+ UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ {
+-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
++	  UINT32 ret;
++
++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP);
+     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
+-    return *(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData->Index)+pParserTempData->CurrentDataBlock);
++    ret = UINT32LE_TO_CPU(*(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData->Index)+pParserTempData->CurrentDataBlock));
++    return ret;
+ }
+ 
+ UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+@@ -435,7 +439,7 @@ UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ {
+     pParserTempData->CD_Mask.SrcAlignment=alignmentLowerWord;
+-    pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
++    pParserTempData->Index=UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP);
+     pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
+     return pParserTempData->Index;
+ }
+@@ -443,7 +447,7 @@ UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ UINT32 GetParametersDirect32(PARSER_TEMP_DATA STACK_BASED *	pParserTempData)
+ {
+     pParserTempData->CD_Mask.SrcAlignment=alignmentDword;
+-    pParserTempData->Index=*(UINT32*)pParserTempData->pWorkingTableData->IP;
++    pParserTempData->Index=UINT32LE_TO_CPU(*(UINT32*)pParserTempData->pWorkingTableData->IP);
+     pParserTempData->pWorkingTableData->IP+=sizeof(UINT32);
+     return pParserTempData->Index;
+ }
+@@ -474,7 +478,7 @@ VOID ProcessMove(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+     if (pParserTempData->CD_Mask.SrcAlignment!=alignmentDword)
+     {
+-	pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
++				pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
+     } else
+     {
+ 	SkipDestination[pParserTempData->ParametersType.Destination](pParserTempData);
+@@ -664,7 +668,8 @@ VOID ProcessSwitch(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
+     pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
+     pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
+     pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
+-    while ( *(UINT16*)pParserTempData->pWorkingTableData->IP != (((UINT16)NOP_OPCODE << 8)+NOP_OPCODE))
++
++    while ( UINT16LE_TO_CPU(*(UINT16*)pParserTempData->pWorkingTableData->IP) != (((UINT16)NOP_OPCODE << 8)+NOP_OPCODE))
+     {
+ 	if (*pParserTempData->pWorkingTableData->IP == 'c')
+ 	{
+@@ -673,7 +678,7 @@ VOID ProcessSwitch(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
+ 	    pParserTempData->Index=GetParametersDirect16(pParserTempData);
+ 	    if (pParserTempData->SourceData32 == pParserTempData->DestData32)
+ 	    {
+-		pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(pParserTempData->Index);
++ 	        pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(pParserTempData->Index);
+ 		return;
+ 	    }
+ 	}
+@@ -695,7 +700,7 @@ VOID	cmdSetDataBlock(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+         } else
+ 	{
+ 	    pMasterDataTable = GetDataMasterTablePointer(pParserTempData->pDeviceData);
+-	    pParserTempData->CurrentDataBlock= (TABLE_UNIT_TYPE)((PTABLE_UNIT_TYPE)pMasterDataTable)[value];
++	    pParserTempData->CurrentDataBlock= UINT16LE_TO_CPU((TABLE_UNIT_TYPE)((PTABLE_UNIT_TYPE)pMasterDataTable)[value]);
+ 	}
+     }
+     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
+@@ -704,13 +709,13 @@ VOID	cmdSetDataBlock(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ VOID	cmdSet_ATI_Port(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+     pParserTempData->Multipurpose.CurrentPort=ATI_RegsPort;
+-    pParserTempData->CurrentPortID = (UINT8)((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination;
++    pParserTempData->CurrentPortID = (UINT8)UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination);
+     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+ }
+ 
+ VOID	cmdSet_Reg_Block(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+-    pParserTempData->CurrentRegBlock = ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination;
++    pParserTempData->CurrentRegBlock = UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination);
+     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+ }
+ 
+@@ -754,19 +759,23 @@ VOID ProcessDebug(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ 
+ VOID ProcessDS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ {
+-    pParserTempData->pWorkingTableData->IP+=((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination+sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
++    pParserTempData->pWorkingTableData->IP+=UINT16LE_TO_CPU(((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination)+sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+ }
+ 
+ 
+-VOID	cmdCall_Table(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
++VOID	cmdCall_Table(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
++{
+     UINT16*	MasterTableOffset;
+     pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
+     MasterTableOffset = GetCommandMasterTablePointer(pParserTempData->pDeviceData);
+     if(((PTABLE_UNIT_TYPE)MasterTableOffset)[((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value]!=0 )  // if the offset is not ZERO
+     {
++	ATOM_TABLE_ATTRIBUTE lTableAttr;
++
+ 	pParserTempData->CommandSpecific.IndexInMasterTable=GetTrueIndexInMasterTable(pParserTempData,((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value);
+-	pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable =
+-	    (((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER *)pParserTempData->pWorkingTableData->pTableHead)->TableAttribute.PS_SizeInBytes>>2);
++
++	lTableAttr = GetCommandTableAttribute(pParserTempData->pWorkingTableData->pTableHead);
++	pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable = (lTableAttr.PS_SizeInBytes >>2);
+ 	pParserTempData->pDeviceData->pParameterSpace+=
+ 	    pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable;
+ 	pParserTempData->Status=CD_CALL_TABLE;
+@@ -792,7 +801,7 @@ VOID ProcessJump(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ 	(pParserTempData->ParametersType.Destination == pParserTempData->CompareFlags ))
+     {
+ 
+-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16));
+     } else
+     {
+ 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+@@ -805,7 +814,7 @@ VOID ProcessJumpE(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+ 	(pParserTempData->CompareFlags == pParserTempData->ParametersType.Destination))
+     {
+ 
+-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16));
+     } else
+     {
+ 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+@@ -817,7 +826,7 @@ VOID ProcessJumpNE(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
+     if (pParserTempData->CompareFlags != Equal)
+     {
+ 
+-	pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
++      pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(UINT16LE_TO_CPU(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16));
+     } else
+     {
+ 	pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
+diff --git a/src/AtomBios/Decoder.c b/src/AtomBios/Decoder.c
+index e8b3b6e..73aac94 100644
+--- a/src/AtomBios/Decoder.c
++++ b/src/AtomBios/Decoder.c
+@@ -40,12 +40,9 @@ Revision History:
+ #endif
+ 
+ #include <X11/Xos.h>
+-
++#include "xorg-server.h"
+ 
+ #include "Decoder.h"
+-#include "atombios.h"
+-#include "CD_binding.h"
+-#include "CD_Common_Types.h"
+ 
+ #ifndef DISABLE_EASF
+ 	#include "easf.h"
+@@ -77,13 +74,13 @@ UINT16* GetCommandMasterTablePointer(DEVICE_DATA STACK_BASED*  pDeviceData)
+     /*
+     make MasterTableOffset point to EASF_ASIC_SETUP_TABLE structure, including usSize.
+     */
+-		MasterTableOffset = (UINT16 *) (pDeviceData->pBIOS_Image+((EASF_ASIC_DESCRIPTOR*)pDeviceData->pBIOS_Image)->usAsicSetupTable_Offset);
++		MasterTableOffset = (UINT16 *) (pDeviceData->pBIOS_Image+(UINT16LE_TO_CPU(((EASF_ASIC_DESCRIPTOR*)pDeviceData->pBIOS_Image)->usAsicSetupTable_Offset));
+ 	} else
+ #endif
+ 	{
+ #ifndef		UEFI_BUILD
+-		MasterTableOffset = (UINT16 *)(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER) + pDeviceData->pBIOS_Image);
+-		MasterTableOffset = (UINT16 *)((ULONG)((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterCommandTableOffset + pDeviceData->pBIOS_Image );
++		MasterTableOffset = (UINT16 *)(UINT16LE_TO_CPU(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER)) + pDeviceData->pBIOS_Image);
++		MasterTableOffset = (UINT16 *)((ULONG)UINT16LE_TO_CPU(((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterCommandTableOffset) + pDeviceData->pBIOS_Image );
+ 		MasterTableOffset =(UINT16 *) &(((ATOM_MASTER_COMMAND_TABLE *)MasterTableOffset)->ListOfCommandTables);
+ #else
+ 	MasterTableOffset = (UINT16 *)(&(GetCommandMasterTable( )->ListOfCommandTables));
+@@ -97,8 +94,8 @@ UINT16* GetDataMasterTablePointer(DEVICE_DATA STACK_BASED*  pDeviceData)
+ 	UINT16		*MasterTableOffset;
+ 	
+ #ifndef		UEFI_BUILD
+-	MasterTableOffset = (UINT16 *)(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER) + pDeviceData->pBIOS_Image);
+-	MasterTableOffset = (UINT16 *)((ULONG)((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterDataTableOffset + pDeviceData->pBIOS_Image );
++	MasterTableOffset = (UINT16 *)(UINT16LE_TO_CPU(*(UINT16 *)(pDeviceData->pBIOS_Image+OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER)) + pDeviceData->pBIOS_Image);
++	MasterTableOffset = (UINT16 *)((ULONG)(UINT16LE_TO_CPU(((ATOM_ROM_HEADER *)MasterTableOffset)->usMasterDataTableOffset)) + pDeviceData->pBIOS_Image );
+ 	MasterTableOffset =(UINT16 *) &(((ATOM_MASTER_DATA_TABLE *)MasterTableOffset)->ListOfDataTables);
+ #else
+ 	MasterTableOffset = (UINT16 *)(&(GetDataMasterTable( )->ListOfDataTables));
+@@ -129,11 +126,29 @@ UINT8 GetTrueIndexInMasterTable(PARSER_TEMP_DATA STACK_BASED * pParserTempData,
+ 	}
+ }
+ 
++ATOM_TABLE_ATTRIBUTE GetCommandTableAttribute(UINT8 *pTableHeader)
++{
++  ATOM_TABLE_ATTRIBUTE_ACCESS lTableAccess;
++
++  /* It's unclear whether this union trick breaks C aliasing rules,
++   * however, it's explicitely permitted by gcc, and we have other
++   * case where the code relies on a union being accessed by either
++   * of the "ways" and stay consistent so if a compiler breaks this
++   * assumption, it will probably need us to compile without strict
++   * aliasing enforcement
++	 */
++	lTableAccess.sbfAccess = ((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER *)pTableHeader)->TableAttribute;
++	lTableAccess.susAccess = UINT16LE_TO_CPU(lTableAccess.susAccess);
++
++	return lTableAccess.sbfAccess;
++}
++
+ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTable)
+ {
+ 	PARSER_TEMP_DATA	ParserTempData;
+   WORKING_TABLE_DATA STACK_BASED* prevWorkingTableData;
+ 
++  memset(&ParserTempData, 0, sizeof(PARSER_TEMP_DATA));
+   ParserTempData.pDeviceData=(DEVICE_DATA*)pDeviceData;
+ #ifndef DISABLE_EASF
+   if (pDeviceData->format == TABLE_FORMAT_EASF)
+@@ -143,7 +158,7 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa
+ #endif
+   {
+     ParserTempData.pCmd=(GENERIC_ATTRIBUTE_COMMAND*)GetDataMasterTablePointer(pDeviceData);
+-    ParserTempData.IndirectIOTablePointer=(UINT8*)((ULONG)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[INDIRECT_IO_TABLE]) + pDeviceData->pBIOS_Image);
++    ParserTempData.IndirectIOTablePointer=(UINT8*)((ULONG)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[INDIRECT_IO_TABLE])) + pDeviceData->pBIOS_Image);
+     ParserTempData.IndirectIOTablePointer+=sizeof(ATOM_COMMON_TABLE_HEADER);
+   }
+ 
+@@ -160,65 +175,66 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa
+ 		ParserTempData.Status=CD_CALL_TABLE;
+ 
+ 		do{
+-
++			
+ 			if (ParserTempData.Status==CD_CALL_TABLE)
+-      {
++			{
+ 				IndexInMasterTable=ParserTempData.CommandSpecific.IndexInMasterTable;
+ 				if(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]!=0)  // if the offset is not ZERO
+-					{
++				{
++				  ATOM_TABLE_ATTRIBUTE lTableAttr;
++				  lTableAttr = GetCommandTableAttribute(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable])+pDeviceData->pBIOS_Image);
+ #ifndef		UEFI_BUILD
+   					ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData,
+-								((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]+pDeviceData->pBIOS_Image))->TableAttribute.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA));
++															      lTableAttr.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA));
+ #else
+-  					ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData,
+-								((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]))->TableAttribute.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA));
++				  ParserTempData.pWorkingTableData =(WORKING_TABLE_DATA STACK_BASED*) AllocateWorkSpace(pDeviceData,
++															lTableAttr.WS_SizeInBytes+sizeof(WORKING_TABLE_DATA));
+ #endif
+-            if (ParserTempData.pWorkingTableData!=NULL)
+-            {
+-						  ParserTempData.pWorkingTableData->pWorkSpace=(WORKSPACE_POINTER STACK_BASED*)((UINT8*)ParserTempData.pWorkingTableData+sizeof(WORKING_TABLE_DATA));
++					if (ParserTempData.pWorkingTableData!=NULL)
++					{
++						ParserTempData.pWorkingTableData->pWorkSpace=(WORKSPACE_POINTER STACK_BASED*)((UINT8*)ParserTempData.pWorkingTableData+sizeof(WORKING_TABLE_DATA));
+ #ifndef		UEFI_BUILD
+-						  ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]+pDeviceData->pBIOS_Image);
++				      ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable])+pDeviceData->pBIOS_Image);
+ #else
+-						  ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]);
++				      ParserTempData.pWorkingTableData->pTableHead  = (UINT8 *)(UINT16LE_TO_CPU(((PTABLE_UNIT_TYPE)ParserTempData.pCmd)[IndexInMasterTable]));
+ #endif
+-	 					  ParserTempData.pWorkingTableData->IP=((UINT8*)ParserTempData.pWorkingTableData->pTableHead)+sizeof(ATOM_COMMON_ROM_COMMAND_TABLE_HEADER);
+-              ParserTempData.pWorkingTableData->prevWorkingTableData=prevWorkingTableData;
+-              prevWorkingTableData=ParserTempData.pWorkingTableData;
+-              ParserTempData.Status = CD_SUCCESS;
+-            } else ParserTempData.Status = CD_UNEXPECTED_BEHAVIOR;
+-					} else ParserTempData.Status = CD_EXEC_TABLE_NOT_FOUND;
++						ParserTempData.pWorkingTableData->IP=((UINT8*)ParserTempData.pWorkingTableData->pTableHead)+sizeof(ATOM_COMMON_ROM_COMMAND_TABLE_HEADER);
++						ParserTempData.pWorkingTableData->prevWorkingTableData=prevWorkingTableData;
++						prevWorkingTableData=ParserTempData.pWorkingTableData;
++						ParserTempData.Status = CD_SUCCESS;
++					} else ParserTempData.Status = CD_UNEXPECTED_BEHAVIOR;
++				} else ParserTempData.Status = CD_EXEC_TABLE_NOT_FOUND;
+ 			}
+ 			if (!CD_ERROR(ParserTempData.Status))
+ 			{
+-        ParserTempData.Status = CD_SUCCESS;
++				ParserTempData.Status = CD_SUCCESS;
+ 				while (!CD_ERROR_OR_COMPLETED(ParserTempData.Status))  
+-        {
+-
++				{
+ 					if (IS_COMMAND_VALID(((COMMAND_HEADER*)ParserTempData.pWorkingTableData->IP)->Opcode))
+-          {
++					{
+ 						ParserTempData.pCmd = (GENERIC_ATTRIBUTE_COMMAND*)ParserTempData.pWorkingTableData->IP;
+-
++						
+ 						if (IS_END_OF_TABLE(((COMMAND_HEADER*)ParserTempData.pWorkingTableData->IP)->Opcode))
+ 						{
+ 							ParserTempData.Status=CD_COMPLETED;
+-              prevWorkingTableData=ParserTempData.pWorkingTableData->prevWorkingTableData;
+-
++							prevWorkingTableData=ParserTempData.pWorkingTableData->prevWorkingTableData;
++							
+ 							FreeWorkSpace(pDeviceData, ParserTempData.pWorkingTableData);
+-              ParserTempData.pWorkingTableData=prevWorkingTableData;
+-              if (prevWorkingTableData!=NULL)
+-              {
+-							  ParserTempData.pDeviceData->pParameterSpace-=
+-								  		(((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER*)ParserTempData.pWorkingTableData->
+-									  		pTableHead)->TableAttribute.PS_SizeInBytes>>2);
+-              } 
+-						// if there is a parent table where to return, then restore PS_pointer to the original state
++							ParserTempData.pWorkingTableData=prevWorkingTableData;
++							if (prevWorkingTableData!=NULL)
++							{
++								ATOM_TABLE_ATTRIBUTE lTableAttr;
++								lTableAttr = GetCommandTableAttribute(ParserTempData.pWorkingTableData->pTableHead);
++								ParserTempData.pDeviceData->pParameterSpace-=(lTableAttr.PS_SizeInBytes>>2);
++							} 
++							// if there is a parent table where to return, then restore PS_pointer to the original state
+ 						}
+ 						else
+ 						{
+-              IndexInMasterTable=ProcessCommandProperties((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData);
++							IndexInMasterTable=ProcessCommandProperties((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData);
+ 							(*CallTable[IndexInMasterTable].function)((PARSER_TEMP_DATA STACK_BASED *)&ParserTempData);
+ #if (PARSER_TYPE!=DRIVER_TYPE_PARSER)
+-              BIOS_STACK_MODIFIER();
++							BIOS_STACK_MODIFIER();
+ #endif
+ 						}
+ 					}
+@@ -227,13 +243,13 @@ CD_STATUS ParseTable(DEVICE_DATA STACK_BASED* pDeviceData, UINT8 IndexInMasterTa
+ 						ParserTempData.Status=CD_INVALID_OPCODE;
+ 						break;
+ 					}
+-
++					
+ 				}	// while
+ 			}	// if
+ 			else
+ 				break;
+ 		} while (prevWorkingTableData!=NULL);
+-    if (ParserTempData.Status == CD_COMPLETED) return CD_SUCCESS;
++		if (ParserTempData.Status == CD_COMPLETED) return CD_SUCCESS;
+ 		return ParserTempData.Status;
+ 	} else return CD_SUCCESS;
+ }
+diff --git a/src/AtomBios/hwserv_drv.c b/src/AtomBios/hwserv_drv.c
+index a5f5a5b..9f2b6b9 100644
+--- a/src/AtomBios/hwserv_drv.c
++++ b/src/AtomBios/hwserv_drv.c
+@@ -34,8 +34,14 @@ Revision History:
+ 
+ 	NEG:27.09.2002	Initiated.
+ --*/
+-#include "CD_binding.h"
+-#include "CD_hw_services.h"
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include <X11/Xos.h>
++#include "xorg-server.h"
++
++#include "Decoder.h"
+ 
+ //trace settings
+ #if DEBUG_OUTPUT_DEVICE & 1
+@@ -249,12 +255,12 @@ VOID	WriteReg32(PARSER_TEMP_DATA STACK_BASED * pWorkingTableData)
+ 
+ VOID	ReadIndReg32 (PARSER_TEMP_DATA STACK_BASED * pWorkingTableData)
+ {
+-    pWorkingTableData->IndirectData = CailReadATIRegister(pWorkingTableData->pDeviceData->CAIL,*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1));
++    pWorkingTableData->IndirectData = CailReadATIRegister(pWorkingTableData->pDeviceData->CAIL,UINT16LE_TO_CPU(*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1)));
+ }
+ 
+ VOID	WriteIndReg32(PARSER_TEMP_DATA STACK_BASED * pWorkingTableData)
+ {
+-    CailWriteATIRegister(pWorkingTableData->pDeviceData->CAIL,*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1),pWorkingTableData->IndirectData );
++    CailWriteATIRegister(pWorkingTableData->pDeviceData->CAIL,UINT16LE_TO_CPU(*(UINT16*)(pWorkingTableData->IndirectIOTablePointer+1)),pWorkingTableData->IndirectData);
+ }
+ 
+ #endif
+diff --git a/src/AtomBios/includes/CD_Common_Types.h b/src/AtomBios/includes/CD_Common_Types.h
+index c60b652..071b8fd 100644
+--- a/src/AtomBios/includes/CD_Common_Types.h
++++ b/src/AtomBios/includes/CD_Common_Types.h
+@@ -155,6 +155,18 @@ typedef unsigned long ULONG_PTR;
+ #ifndef FGL_LINUX
+ #pragma warning ( default : 4142 )
+ #endif
++
++#ifndef ATOM_BIG_ENDIAN
++#ifdef X_BYTE_ORDER
++#if X_BYTE_ORDER == X_BIG_ENDIAN
++#define ATOM_BIG_ENDIAN		1
++#endif
++#endif
++#endif
++#ifndef ATOM_BIG_ENDIAN
++#define ATOM_BIG_ENDIAN		0
++#endif
++
+ #endif // _COMMON_TYPES_H_
+ 
+ // EOF
+diff --git a/src/AtomBios/includes/CD_Definitions.h b/src/AtomBios/includes/CD_Definitions.h
+index 98fd495..c00e93e 100644
+--- a/src/AtomBios/includes/CD_Definitions.h
++++ b/src/AtomBios/includes/CD_Definitions.h
+@@ -39,11 +39,12 @@ NEG:27.08.2002	Initiated.
+ #ifndef _CD_DEFINITIONS_H
+ #define _CD_DEFINITIONS_H_
+ #ifdef DRIVER_PARSER
+-VOID *AllocateMemory(VOID *, UINT16);
++VOID *AllocateMemory(DEVICE_DATA *, UINT16);
+ VOID ReleaseMemory(DEVICE_DATA * , WORKING_TABLE_DATA* );
+ #endif
+ CD_STATUS ParseTable(DEVICE_DATA* pDeviceData, UINT8 IndexInMasterTable);
+ //CD_STATUS CD_MainLoop(PARSER_TEMP_DATA_POINTER pParserTempData);
+ CD_STATUS Main_Loop(DEVICE_DATA* pDeviceData,UINT16 *MasterTableOffset,UINT8 IndexInMasterTable);
+ UINT16* GetCommandMasterTablePointer(DEVICE_DATA*  pDeviceData);
++ATOM_TABLE_ATTRIBUTE GetCommandTableAttribute(UINT8 *pTableHeader);
+ #endif //CD_DEFINITIONS
+diff --git a/src/AtomBios/includes/CD_Structs.h b/src/AtomBios/includes/CD_Structs.h
+index c43f81d..01fb80e 100644
+--- a/src/AtomBios/includes/CD_Structs.h
++++ b/src/AtomBios/includes/CD_Structs.h
+@@ -35,10 +35,18 @@ Revision History:
+ NEG:26.08.2002	Initiated.
+ --*/
+ 
+-#include "CD_binding.h"
+ #ifndef _CD_STRUCTS_H_
+ #define _CD_STRUCTS_H_
+ 
++#include "CD_binding.h"
++
++/* Endaianness should be specified before inclusion,
++ * default to little endian
++ */
++#ifndef ATOM_BIG_ENDIAN
++#error Endian not specified
++#endif
++
+ #ifdef		UEFI_BUILD
+ typedef	UINT16**	PTABLE_UNIT_TYPE;
+ typedef	UINTN		TABLE_UNIT_TYPE;
+@@ -304,9 +312,15 @@ typedef union _PARAMETER_ACCESS {
+ }PARAMETER_ACCESS;
+ 
+ typedef	struct _COMMAND_ATTRIBUTE {
++#if ATOM_BIG_ENDIAN
++    UINT8		DestinationAlignment:2;
++    UINT8		SourceAlignment:3;
++    UINT8		Source:3;
++#else
+     UINT8		Source:3;
+     UINT8		SourceAlignment:3;
+     UINT8		DestinationAlignment:2;
++#endif
+ }COMMAND_ATTRIBUTE;
+ 
+ typedef struct _SOURCE_DESTINATION_ALIGNMENT{
+@@ -363,11 +377,19 @@ typedef union  _COMMAND_SPECIFIC_UNION{
+ 
+ 
+ typedef struct _CD_GENERIC_BYTE{
++#if ATOM_BIG_ENDIAN
++    UINT16					PS_SizeInDwordsUsedByCallingTable:5;
++    UINT16					CurrentPort:2;
++    UINT16					CommandAccessType:3;
++    UINT16					CurrentParameterSize:3;
++    UINT16					CommandType:3;
++#else
+     UINT16					CommandType:3;
+     UINT16					CurrentParameterSize:3;
+     UINT16					CommandAccessType:3;
+     UINT16					CurrentPort:2;
+     UINT16					PS_SizeInDwordsUsedByCallingTable:5;
++#endif
+ }CD_GENERIC_BYTE;
+ 
+ typedef UINT8	COMMAND_TYPE_OPCODE_ONLY;
+diff --git a/src/AtomBios/includes/Decoder.h b/src/AtomBios/includes/Decoder.h
+index 24c25fc..1e143f0 100644
+--- a/src/AtomBios/includes/Decoder.h
++++ b/src/AtomBios/includes/Decoder.h
+@@ -47,12 +47,32 @@ NEG:27.08.2002	Initiated.
+ #define PARSER_VERSION_MAJOR                   0x00000000
+ #define PARSER_VERSION_MINOR                   0x0000000E
+ #define PARSER_VERSION                         (PARSER_VERSION_MAJOR | PARSER_VERSION_MINOR)
+-#include "CD_binding.h"
++
+ #include "CD_Common_Types.h"
++
++#include "atombios.h"
++
++/* these depends on some struct defined in atombios.h */
++#include "CD_binding.h"
+ #include "CD_hw_services.h"
+ #include "CD_Structs.h"
+-#include "CD_Definitions.h"
+ #include "CD_Opcodes.h"
++#include "CD_Definitions.h"
++
++#if ATOM_BIG_ENDIAN
++extern UINT16 ATOM_BSWAP16(UINT16 x);
++extern UINT32 ATOM_BSWAP32(UINT32 x);
++
++#define CPU_TO_UINT16LE(x)	ATOM_BSWAP16(x)
++#define CPU_TO_UINT32LE(x)	ATOM_BSWAP32(x)
++#define UINT16LE_TO_CPU(x)	ATOM_BSWAP16(x)
++#define UINT32LE_TO_CPU(x)	ATOM_BSWAP32(x)
++#else
++#define CPU_TO_UINT16LE(x)	(x)
++#define CPU_TO_UINT32LE(x)	(x)
++#define UINT16LE_TO_CPU(x)	(x)
++#define UINT32LE_TO_CPU(x)	(x)
++#endif
+ 
+ #define	SOURCE_ONLY_CMD_TYPE		0//0xFE
+ #define SOURCE_DESTINATION_CMD_TYPE	1//0xFD
+diff --git a/src/AtomBios/includes/ObjectID.h b/src/AtomBios/includes/ObjectID.h
+index 4b106cf..f1f18a4 100644
+--- a/src/AtomBios/includes/ObjectID.h
++++ b/src/AtomBios/includes/ObjectID.h
+@@ -78,6 +78,10 @@
+ #define ENCODER_OBJECT_ID_DP_DP501                0x1D
+ #define ENCODER_OBJECT_ID_INTERNAL_UNIPHY         0x1E
+ #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA   0x1F
++#define ENCODER_OBJECT_ID_INTERNAL_UNIPHY1        0x20
++#define ENCODER_OBJECT_ID_INTERNAL_UNIPHY2        0x21
++
++#define ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO    0xFF
+ 
+ /****************************************************/
+ /* Connector Object ID Definition                   */
+@@ -118,6 +122,8 @@
+ #define GRAPH_OBJECT_ENUM_ID2                     0x02
+ #define GRAPH_OBJECT_ENUM_ID3                     0x03
+ #define GRAPH_OBJECT_ENUM_ID4                     0x04
++#define GRAPH_OBJECT_ENUM_ID5                     0x05
++#define GRAPH_OBJECT_ENUM_ID6                     0x06
+ 
+ /****************************************************/
+ /* Graphics Object ID Bit definition                */
+@@ -173,7 +179,7 @@
+ #define ENCODER_SI178_ENUM_ID1                   0x2117 
+ #define ENCODER_MVPU_FPGA_ENUM_ID1               0x2118
+ #define ENCODER_INTERNAL_DDI_ENUM_ID1            0x2119
+-#define ENCODER_VT1625_ENUM_ID1               0x211A
++#define ENCODER_VT1625_ENUM_ID1                  0x211A
+ #define ENCODER_HDMI_SI1932_ENUM_ID1             0x211B
+ #define ENCODER_ENCODER_DP_AN9801_ENUM_ID1       0x211C
+ #define ENCODER_DP_DP501_ENUM_ID1                0x211D
+@@ -323,6 +329,26 @@
+                                                  GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
+                                                  ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA << OBJECT_ID_SHIFT)  
+ 
++#define ENCODER_INTERNAL_UNIPHY1_ENUM_ID1         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT)
++
++#define ENCODER_INTERNAL_UNIPHY1_ENUM_ID2         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT)
++
++#define ENCODER_INTERNAL_UNIPHY2_ENUM_ID1         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
++
++#define ENCODER_INTERNAL_UNIPHY2_ENUM_ID2         ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
++                                                 ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
++
++#define ENCODER_GENERAL_EXTERNAL_DVO_ENUM_ID1    ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
++                                                  GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
++                                                  ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO << OBJECT_ID_SHIFT)
++
+ /****************************************************/
+ /* Connector Object ID definition - Shared with BIOS */
+ /****************************************************/
+@@ -453,6 +479,14 @@
+                                                  GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
+                                                  CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
+ 
++#define CONNECTOR_DISPLAYPORT_ENUM_ID3         ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
++                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
++
++#define CONNECTOR_DISPLAYPORT_ENUM_ID4         ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
++                                                 GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
++                                                 CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
++
+ /****************************************************/
+ /* Router Object ID definition - Shared with BIOS   */
+ /****************************************************/
+diff --git a/src/AtomBios/includes/atombios.h b/src/AtomBios/includes/atombios.h
+index 17483a6..9932b09 100644
+--- a/src/AtomBios/includes/atombios.h
++++ b/src/AtomBios/includes/atombios.h
+@@ -34,6 +34,12 @@
+ 
+ #define ATOM_HEADER_VERSION (ATOM_VERSION_MAJOR | ATOM_VERSION_MINOR)
+ 
++/* Endianness should be specified before inclusion,
++ * default to little endian
++ */
++#ifndef ATOM_BIG_ENDIAN
++#error Endian not specified
++#endif
+ 
+ #ifdef _H2INC
+   #ifndef ULONG 
+@@ -260,7 +266,7 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{
+   USHORT SetCRTC_UsingDTDTiming;                 //Atomic Table,  directly used by various SW components,latest version 1.1
+   USHORT ExternalEncoderControl;                 //Atomic Table,  directly used by various SW components,latest version 2.1
+   USHORT LVTMAOutputControl;                     //Atomic Table,  directly used by various SW components,latest version 1.1
+-  USHORT VRAM_BlockDetectionByStrap;
++  USHORT VRAM_BlockDetectionByStrap;             //Atomic Table,  used only by Bios
+   USHORT MemoryCleanUp;                          //Atomic Table,  only used by Bios    
+   USHORT ProcessI2cChannelTransaction;           //Function Table,only used by Bios
+   USHORT WriteOneByteToHWAssistedI2C;            //Function Table,indirectly used by various SW components 
+@@ -270,9 +276,9 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{
+   USHORT MC_Synchronization;                     //Atomic Table,  indirectly used by various SW components,called from SetMemoryClock
+   USHORT ComputeMemoryEnginePLL;                 //Atomic Table,  indirectly used by various SW components,called from SetMemory/EngineClock
+   USHORT MemoryRefreshConversion;                //Atomic Table,  indirectly used by various SW components,called from SetMemory or SetEngineClock
+-  USHORT VRAM_GetCurrentInfoBlock;
++  USHORT VRAM_GetCurrentInfoBlock;               //Atomic Table,  used only by Bios
+   USHORT DynamicMemorySettings;                  //Atomic Table,  indirectly used by various SW components,called from SetMemoryClock
+-  USHORT MemoryTraining;
++  USHORT MemoryTraining;                         //Atomic Table,  used only by Bios
+   USHORT EnableSpreadSpectrumOnPPLL;             //Atomic Table,  directly used by various SW components,latest version 1.2
+   USHORT TMDSAOutputControl;                     //Atomic Table,  directly used by various SW components,latest version 1.1
+   USHORT SetVoltage;                             //Function Table,directly and/or indirectly used by various SW components,latest version 1.1
+@@ -290,11 +296,12 @@ typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{
+   USHORT DPEncoderService;											 //Function Table,only used by Bios
+ }ATOM_MASTER_LIST_OF_COMMAND_TABLES;   
+ 
++// For backward compatible 
+ #define ReadEDIDFromHWAssistedI2C                ProcessI2cChannelTransaction
+-
+ #define UNIPHYTransmitterControl						     DIG1TransmitterControl
+ #define LVTMATransmitterControl							     DIG2TransmitterControl
+-#define SetCRTC_DPM_State                                    GetConditionalGoldenSetting
++#define SetCRTC_DPM_State                        GetConditionalGoldenSetting
++#define SetUniphyInstance                        ASIC_StaticPwrMgtStatusChange
+ 
+ typedef struct _ATOM_MASTER_COMMAND_TABLE
+ {
+@@ -302,9 +309,12 @@ typedef struct _ATOM_MASTER_COMMAND_TABLE
+   ATOM_MASTER_LIST_OF_COMMAND_TABLES ListOfCommandTables;
+ }ATOM_MASTER_COMMAND_TABLE;
+ 
++/****************************************************************************/	
++// Structures used in every command table
++/****************************************************************************/	
+ typedef struct _ATOM_TABLE_ATTRIBUTE
+ {
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+   USHORT  UpdatedByUtility:1;         //[15]=Table updated by utility flag
+   USHORT  PS_SizeInBytes:7;           //[14:8]=Size of parameter space in Bytes (multiple of a dword), 
+   USHORT  WS_SizeInBytes:8;           //[7:0]=Size of workspace in Bytes (in multiple of a dword), 
+@@ -315,23 +325,26 @@ typedef struct _ATOM_TABLE_ATTRIBUTE
+ #endif
+ }ATOM_TABLE_ATTRIBUTE;
+ 
+-// Common header for all command tables.
+-//Every table pointed by _ATOM_MASTER_COMMAND_TABLE has this common header. 
+-//And the pointer actually points to this header.
++typedef union _ATOM_TABLE_ATTRIBUTE_ACCESS
++{
++  ATOM_TABLE_ATTRIBUTE sbfAccess;
++  USHORT               susAccess;
++}ATOM_TABLE_ATTRIBUTE_ACCESS;
+ 
++/****************************************************************************/	
++// Common header for all command tables.
++// Every table pointed by _ATOM_MASTER_COMMAND_TABLE has this common header. 
++// And the pointer actually points to this header.
++/****************************************************************************/	
+ typedef struct _ATOM_COMMON_ROM_COMMAND_TABLE_HEADER
+ {
+   ATOM_COMMON_TABLE_HEADER CommonHeader;
+   ATOM_TABLE_ATTRIBUTE     TableAttribute;	
+ }ATOM_COMMON_ROM_COMMAND_TABLE_HEADER;
+ 
+-
+-typedef struct _ASIC_INIT_PARAMETERS
+-{
+-  ULONG ulDefaultEngineClock;         //In 10Khz unit
+-  ULONG ulDefaultMemoryClock;         //In 10Khz unit
+-}ASIC_INIT_PARAMETERS;
+-
++/****************************************************************************/	
++// Structures used by ComputeMemoryEnginePLLTable
++/****************************************************************************/	
+ #define COMPUTE_MEMORY_PLL_PARAM        1
+ #define COMPUTE_ENGINE_PLL_PARAM        2
+ 
+@@ -368,6 +381,57 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V2
+ #define b3FIRST_TIME_CHANGE_CLOCK									0x08       //Applicable to both memory and engine clock change,when set, it means this is 1st time to change clock after ASIC bootup
+ #define b3SKIP_SW_PROGRAM_PLL											0x10			 //Applicable to both memory and engine clock change, when set, it means the table will not program SPLL/MPLL
+ 
++typedef struct _ATOM_COMPUTE_CLOCK_FREQ
++{
++#if ATOM_BIG_ENDIAN
++  ULONG ulComputeClockFlag:8;                 // =1: COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM
++  ULONG ulClockFreq:24;                       // in unit of 10kHz
++#else
++  ULONG ulClockFreq:24;                       // in unit of 10kHz
++  ULONG ulComputeClockFlag:8;                 // =1: COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM
++#endif
++}ATOM_COMPUTE_CLOCK_FREQ;
++
++typedef struct _ATOM_S_MPLL_FB_DIVIDER
++{
++  USHORT usFbDivFrac;  
++  USHORT usFbDiv;  
++}ATOM_S_MPLL_FB_DIVIDER;
++
++typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3
++{
++  union
++  {
++    ATOM_COMPUTE_CLOCK_FREQ  ulClock;         //Input Parameter
++    ATOM_S_MPLL_FB_DIVIDER   ulFbDiv;         //Output Parameter
++  };
++  UCHAR   ucRefDiv;                           //Output Parameter      
++  UCHAR   ucPostDiv;                          //Output Parameter      
++  UCHAR   ucCntlFlag;                         //Output Parameter      
++  UCHAR   ucReserved;
++}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3;
++
++// ucCntlFlag
++#define ATOM_PLL_CNTL_FLAG_PLL_POST_DIV_EN          1
++#define ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE            2
++#define ATOM_PLL_CNTL_FLAG_FRACTION_DISABLE         4
++
++typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER
++{
++  ATOM_COMPUTE_CLOCK_FREQ ulClock;
++  ULONG ulReserved[2];
++}DYNAMICE_MEMORY_SETTINGS_PARAMETER;
++
++typedef struct _DYNAMICE_ENGINE_SETTINGS_PARAMETER
++{
++  ATOM_COMPUTE_CLOCK_FREQ ulClock;
++  ULONG ulMemoryClock;
++  ULONG ulReserved;
++}DYNAMICE_ENGINE_SETTINGS_PARAMETER;
++
++/****************************************************************************/	
++// Structures used by SetEngineClockTable
++/****************************************************************************/	
+ typedef struct _SET_ENGINE_CLOCK_PARAMETERS
+ {
+   ULONG ulTargetEngineClock;          //In 10Khz unit
+@@ -379,7 +443,9 @@ typedef struct _SET_ENGINE_CLOCK_PS_ALLOCATION
+   COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION sReserved;
+ }SET_ENGINE_CLOCK_PS_ALLOCATION;
+ 
+-
++/****************************************************************************/	
++// Structures used by SetMemoryClockTable
++/****************************************************************************/	
+ typedef struct _SET_MEMORY_CLOCK_PARAMETERS
+ {
+   ULONG ulTargetMemoryClock;          //In 10Khz unit
+@@ -391,13 +457,24 @@ typedef struct _SET_MEMORY_CLOCK_PS_ALLOCATION
+   COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION sReserved;
+ }SET_MEMORY_CLOCK_PS_ALLOCATION;
+ 
++/****************************************************************************/	
++// Structures used by ASIC_Init.ctb
++/****************************************************************************/	
++typedef struct _ASIC_INIT_PARAMETERS
++{
++  ULONG ulDefaultEngineClock;         //In 10Khz unit
++  ULONG ulDefaultMemoryClock;         //In 10Khz unit
++}ASIC_INIT_PARAMETERS;
++
+ typedef struct _ASIC_INIT_PS_ALLOCATION
+ {
+   ASIC_INIT_PARAMETERS sASICInitClocks;
+   SET_ENGINE_CLOCK_PS_ALLOCATION sReserved; //Caller doesn't need to init this structure
+ }ASIC_INIT_PS_ALLOCATION;
+ 
+-
++/****************************************************************************/	
++// Structure used by DynamicClockGatingTable.ctb
++/****************************************************************************/	
+ typedef struct _DYNAMIC_CLOCK_GATING_PARAMETERS 
+ {
+   UCHAR ucEnable;                     // ATOM_ENABLE or ATOM_DISABLE
+@@ -405,7 +482,9 @@ typedef struct _DYNAMIC_CLOCK_GATING_PARAMETERS
+ }DYNAMIC_CLOCK_GATING_PARAMETERS;
+ #define  DYNAMIC_CLOCK_GATING_PS_ALLOCATION  DYNAMIC_CLOCK_GATING_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structure used by EnableASIC_StaticPwrMgtTable.ctb
++/****************************************************************************/	
+ typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS
+ {
+   UCHAR ucEnable;                     // ATOM_ENABLE or ATOM_DISABLE
+@@ -413,7 +492,9 @@ typedef struct _ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS
+ }ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS;
+ #define ENABLE_ASIC_STATIC_PWR_MGT_PS_ALLOCATION  ENABLE_ASIC_STATIC_PWR_MGT_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by DAC_LoadDetectionTable.ctb
++/****************************************************************************/	
+ typedef struct _DAC_LOAD_DETECTION_PARAMETERS
+ {
+   USHORT usDeviceID;                  //{ATOM_DEVICE_CRTx_SUPPORT,ATOM_DEVICE_TVx_SUPPORT,ATOM_DEVICE_CVx_SUPPORT}
+@@ -424,14 +505,15 @@ typedef struct _DAC_LOAD_DETECTION_PARAMETERS
+ // DAC_LOAD_DETECTION_PARAMETERS.ucMisc
+ #define DAC_LOAD_MISC_YPrPb						0x01
+ 
+-
+ typedef struct _DAC_LOAD_DETECTION_PS_ALLOCATION
+ {
+   DAC_LOAD_DETECTION_PARAMETERS            sDacload;
+   ULONG                                    Reserved[2];// Don't set this one, allocation for EXT DAC
+ }DAC_LOAD_DETECTION_PS_ALLOCATION;
+ 
+-
++/****************************************************************************/	
++// Structures used by DAC1EncoderControlTable.ctb and DAC2EncoderControlTable.ctb
++/****************************************************************************/	
+ typedef struct _DAC_ENCODER_CONTROL_PARAMETERS 
+ {
+   USHORT usPixelClock;                // in 10KHz; for bios convenient
+@@ -443,14 +525,11 @@ typedef struct _DAC_ENCODER_CONTROL_PARAMETERS
+ 
+ #define DAC_ENCODER_CONTROL_PS_ALLOCATION  DAC_ENCODER_CONTROL_PARAMETERS
+ 
+-typedef struct _TV_ENCODER_CONTROL_PARAMETERS
+-{
+-  USHORT usPixelClock;                // in 10KHz; for bios convenient
+-  UCHAR  ucTvStandard;                // See definition "ATOM_TV_NTSC ..."
+-  UCHAR  ucAction;                    // 0: turn off encoder
+-                                      // 1: setup and turn on encoder
+-}TV_ENCODER_CONTROL_PARAMETERS;
+-
++/****************************************************************************/	
++// Structures used by DIG1EncoderControlTable
++//                    DIG2EncoderControlTable
++//                    ExternalEncoderControlTable
++/****************************************************************************/	
+ typedef struct _DIG_ENCODER_CONTROL_PARAMETERS
+ {
+   USHORT usPixelClock;		// in 10KHz; for bios convenient
+@@ -475,7 +554,6 @@ typedef struct _DIG_ENCODER_CONTROL_PARAMETERS
+ }DIG_ENCODER_CONTROL_PARAMETERS;
+ #define DIG_ENCODER_CONTROL_PS_ALLOCATION			  DIG_ENCODER_CONTROL_PARAMETERS
+ #define EXTERNAL_ENCODER_CONTROL_PARAMETER			DIG_ENCODER_CONTROL_PARAMETERS
+-#define EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION	DIG_ENCODER_CONTROL_PS_ALLOCATION
+ 
+ //ucConfig
+ #define ATOM_ENCODER_CONFIG_DPLINKRATE_MASK				0x01
+@@ -506,6 +584,56 @@ typedef struct _DIG_ENCODER_CONTROL_PARAMETERS
+ #define ATOM_ENCODER_MODE_CV											14
+ #define ATOM_ENCODER_MODE_CRT											15
+ 
++typedef struct _ATOM_DIG_ENCODER_CONFIG_V2
++{
++#if ATOM_BIG_ENDIAN
++    UCHAR ucReserved1:2;
++    UCHAR ucTransmitterSel:2;     // =0: UniphyAB, =1: UniphyCD  =2: UniphyEF
++    UCHAR ucLinkSel:1;            // =0: linkA/C/E =1: linkB/D/F
++    UCHAR ucReserved:1;
++    UCHAR ucDPLinkRate:1;         // =0: 1.62Ghz, =1: 2.7Ghz
++#else
++    UCHAR ucDPLinkRate:1;         // =0: 1.62Ghz, =1: 2.7Ghz
++    UCHAR ucReserved:1;
++    UCHAR ucLinkSel:1;            // =0: linkA/C/E =1: linkB/D/F
++    UCHAR ucTransmitterSel:2;     // =0: UniphyAB, =1: UniphyCD  =2: UniphyEF
++    UCHAR ucReserved1:2;
++#endif
++}ATOM_DIG_ENCODER_CONFIG_V2;
++
++
++typedef struct _DIG_ENCODER_CONTROL_PARAMETERS_V2
++{
++  USHORT usPixelClock;      // in 10KHz; for bios convenient
++  ATOM_DIG_ENCODER_CONFIG_V2 acConfig;
++  UCHAR ucAction;                                       
++  UCHAR ucEncoderMode;
++                            // =0: DP   encoder      
++                            // =1: LVDS encoder          
++                            // =2: DVI  encoder  
++                            // =3: HDMI encoder
++                            // =4: SDVO encoder
++  UCHAR ucLaneNum;          // how many lanes to enable
++  UCHAR ucReserved[2];
++}DIG_ENCODER_CONTROL_PARAMETERS_V2;
++
++//ucConfig
++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_MASK				0x01
++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_1_62GHZ		  0x00
++#define ATOM_ENCODER_CONFIG_V2_DPLINKRATE_2_70GHZ		  0x01
++#define ATOM_ENCODER_CONFIG_V2_LINK_SEL_MASK				  0x04
++#define ATOM_ENCODER_CONFIG_V2_LINKA								  0x00
++#define ATOM_ENCODER_CONFIG_V2_LINKB								  0x04
++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER_SEL_MASK	  0x18
++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER1				    0x00
++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER2				    0x08
++#define ATOM_ENCODER_CONFIG_V2_TRANSMITTER3				    0x10
++
++/****************************************************************************/	
++// Structures used by UNIPHYTransmitterControlTable
++//                    LVTMATransmitterControlTable
++//                    DVOOutputControlTable
++/****************************************************************************/	
+ typedef struct _ATOM_DP_VS_MODE
+ {
+   UCHAR ucLaneSel;
+@@ -583,7 +711,82 @@ typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS
+ #define ATOM_TRANSMITTER_ACTION_SETUP						       10
+ #define ATOM_TRANSMITTER_ACTION_SETUP_VSEMPH           11
+ 
+-/****************************Device Output Control Command Table Definitions**********************/
++
++// Following are used for DigTransmitterControlTable ver1.2
++typedef struct _ATOM_DIG_TRANSMITTER_CONFIG_V2
++{
++#if ATOM_BIG_ENDIAN
++  UCHAR ucTransmitterSel:2;         //bit7:6: =0 Dig Transmitter 1 ( Uniphy AB )
++                                    //        =1 Dig Transmitter 2 ( Uniphy CD )
++                                    //        =2 Dig Transmitter 3 ( Uniphy EF )
++  UCHAR ucReserved:1;               
++  UCHAR fDPConnector:1;             //bit4=0: DP connector  =1: None DP connector
++  UCHAR ucEncoderSel:1;             //bit3=0: Data/Clk path source from DIGA( DIG inst0 ). =1: Data/clk path source from DIGB ( DIG inst1 )
++  UCHAR ucLinkSel:1;                //bit2=0: Uniphy LINKA or C or E when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is A or C or E
++                                    //    =1: Uniphy LINKB or D or F when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is B or D or F
++
++  UCHAR fCoherentMode:1;            //bit1=1: Coherent Mode ( for DVI/HDMI mode )
++  UCHAR fDualLinkConnector:1;       //bit0=1: Dual Link DVI connector
++#else
++  UCHAR fDualLinkConnector:1;       //bit0=1: Dual Link DVI connector
++  UCHAR fCoherentMode:1;            //bit1=1: Coherent Mode ( for DVI/HDMI mode )
++  UCHAR ucLinkSel:1;                //bit2=0: Uniphy LINKA or C or E when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is A or C or E
++                                    //    =1: Uniphy LINKB or D or F when fDualLinkConnector=0. when fDualLinkConnector=1, it means master link of dual link is B or D or F
++  UCHAR ucEncoderSel:1;             //bit3=0: Data/Clk path source from DIGA( DIG inst0 ). =1: Data/clk path source from DIGB ( DIG inst1 )
++  UCHAR fDPConnector:1;             //bit4=0: DP connector  =1: None DP connector
++  UCHAR ucReserved:1;               
++  UCHAR ucTransmitterSel:2;         //bit7:6: =0 Dig Transmitter 1 ( Uniphy AB )
++                                    //        =1 Dig Transmitter 2 ( Uniphy CD )
++                                    //        =2 Dig Transmitter 3 ( Uniphy EF )
++#endif
++}ATOM_DIG_TRANSMITTER_CONFIG_V2;
++
++//ucConfig 
++//Bit0
++#define ATOM_TRANSMITTER_CONFIG_V2_DUAL_LINK_CONNECTOR			0x01
++
++//Bit1
++#define ATOM_TRANSMITTER_CONFIG_V2_COHERENT				          0x02
++
++//Bit2
++#define ATOM_TRANSMITTER_CONFIG_V2_LINK_SEL_MASK		        0x04
++#define ATOM_TRANSMITTER_CONFIG_V2_LINKA  			            0x00			
++#define ATOM_TRANSMITTER_CONFIG_V2_LINKB				            0x04
++
++// Bit3
++#define ATOM_TRANSMITTER_CONFIG_V2_ENCODER_SEL_MASK	        0x08
++#define ATOM_TRANSMITTER_CONFIG_V2_DIG1_ENCODER		          0x00				// only used when ucAction == ATOM_TRANSMITTER_ACTION_ENABLE or ATOM_TRANSMITTER_ACTION_SETUP
++#define ATOM_TRANSMITTER_CONFIG_V2_DIG2_ENCODER		          0x08				// only used when ucAction == ATOM_TRANSMITTER_ACTION_ENABLE or ATOM_TRANSMITTER_ACTION_SETUP
++
++// Bit4
++#define ATOM_TRASMITTER_CONFIG_V2_DP_CONNECTOR			        0x10
++
++// Bit7:6
++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER_SEL_MASK     0xC0
++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER1           	0x00	//AB
++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER2           	0x40	//CD
++#define ATOM_TRANSMITTER_CONFIG_V2_TRANSMITTER3           	0x80	//EF
++
++typedef struct _DIG_TRANSMITTER_CONTROL_PARAMETERS_V2
++{
++	union
++	{
++  USHORT usPixelClock;		// in 10KHz; for bios convenient
++	USHORT usInitInfo;			// when init uniphy,lower 8bit is used for connector type defined in objectid.h
++  ATOM_DP_VS_MODE asMode; // DP Voltage swing mode
++	};
++  ATOM_DIG_TRANSMITTER_CONFIG_V2 acConfig;
++	UCHAR ucAction;				  // define as ATOM_TRANSMITER_ACTION_XXX	                       
++  UCHAR ucReserved[4];
++}DIG_TRANSMITTER_CONTROL_PARAMETERS_V2;
++
++
++/****************************************************************************/	
++// Structures used by DAC1OuputControlTable
++//                    DAC2OuputControlTable
++//                    LVTMAOutputControlTable  (Before DEC30)
++//                    TMDSAOutputControlTable  (Before DEC30)
++/****************************************************************************/	
+ typedef struct _DISPLAY_DEVICE_OUTPUT_CONTROL_PARAMETERS
+ {
+   UCHAR  ucAction;                    // Possible input:ATOM_ENABLE||ATOMDISABLE
+@@ -622,7 +825,9 @@ typedef struct _DISPLAY_DEVICE_OUTPUT_CONTROL_PARAMETERS
+ #define DVO_OUTPUT_CONTROL_PS_ALLOCATION   DIG_TRANSMITTER_CONTROL_PS_ALLOCATION
+ #define DVO_OUTPUT_CONTROL_PARAMETERS_V3	 DIG_TRANSMITTER_CONTROL_PARAMETERS
+ 
+-/**************************************************************************/
++/****************************************************************************/	
++// Structures used by BlankCRTCTable
++/****************************************************************************/	
+ typedef struct _BLANK_CRTC_PARAMETERS
+ {
+   UCHAR  ucCRTC;                    	// ATOM_CRTC1 or ATOM_CRTC2
+@@ -633,7 +838,11 @@ typedef struct _BLANK_CRTC_PARAMETERS
+ }BLANK_CRTC_PARAMETERS;
+ #define BLANK_CRTC_PS_ALLOCATION    BLANK_CRTC_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by EnableCRTCTable
++//                    EnableCRTCMemReqTable
++//                    UpdateCRTC_DoubleBufferRegistersTable
++/****************************************************************************/	
+ typedef struct _ENABLE_CRTC_PARAMETERS
+ {
+   UCHAR ucCRTC;                    	  // ATOM_CRTC1 or ATOM_CRTC2
+@@ -642,7 +851,9 @@ typedef struct _ENABLE_CRTC_PARAMETERS
+ }ENABLE_CRTC_PARAMETERS;
+ #define ENABLE_CRTC_PS_ALLOCATION   ENABLE_CRTC_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by SetCRTC_OverScanTable
++/****************************************************************************/	
+ typedef struct _SET_CRTC_OVERSCAN_PARAMETERS
+ {
+   USHORT usOverscanRight;             // right
+@@ -654,7 +865,9 @@ typedef struct _SET_CRTC_OVERSCAN_PARAMETERS
+ }SET_CRTC_OVERSCAN_PARAMETERS;
+ #define SET_CRTC_OVERSCAN_PS_ALLOCATION  SET_CRTC_OVERSCAN_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by SetCRTC_ReplicationTable
++/****************************************************************************/	
+ typedef struct _SET_CRTC_REPLICATION_PARAMETERS
+ {
+   UCHAR ucH_Replication;              // horizontal replication
+@@ -664,7 +877,9 @@ typedef struct _SET_CRTC_REPLICATION_PARAMETERS
+ }SET_CRTC_REPLICATION_PARAMETERS;
+ #define SET_CRTC_REPLICATION_PS_ALLOCATION  SET_CRTC_REPLICATION_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by SelectCRTC_SourceTable
++/****************************************************************************/	
+ typedef struct _SELECT_CRTC_SOURCE_PARAMETERS
+ {
+   UCHAR ucCRTC;                    	  // ATOM_CRTC1 or ATOM_CRTC2
+@@ -701,6 +916,10 @@ typedef struct _SELECT_CRTC_SOURCE_PARAMETERS_V2
+ //#define ATOM_ENCODER_MODE_CV										14
+ //#define ATOM_ENCODER_MODE_CRT										15
+ 
++/****************************************************************************/	
++// Structures used by SetPixelClockTable
++//                    GetPixelClockTable 
++/****************************************************************************/	
+ //Major revision=1., Minor revision=1
+ typedef struct _PIXEL_CLOCK_PARAMETERS
+ {
+@@ -716,7 +935,6 @@ typedef struct _PIXEL_CLOCK_PARAMETERS
+   UCHAR  ucPadding;
+ }PIXEL_CLOCK_PARAMETERS;
+ 
+-
+ //Major revision=1., Minor revision=2, add ucMiscIfno
+ //ucMiscInfo:
+ #define MISC_FORCE_REPROG_PIXEL_CLOCK 0x1
+@@ -787,6 +1005,9 @@ typedef struct _PIXEL_CLOCK_PARAMETERS_V3
+ #define PIXEL_CLOCK_PARAMETERS_LAST			PIXEL_CLOCK_PARAMETERS_V2
+ #define GET_PIXEL_CLOCK_PS_ALLOCATION		PIXEL_CLOCK_PARAMETERS_LAST
+ 
++/****************************************************************************/	
++// Structures used by AdjustDisplayPllTable
++/****************************************************************************/	
+ typedef struct _ADJUST_DISPLAY_PLL_PARAMETERS
+ {
+ 	USHORT usPixelClock;
+@@ -804,6 +1025,9 @@ typedef struct _ADJUST_DISPLAY_PLL_PARAMETERS
+ 
+ #define ADJUST_DISPLAY_PLL_PS_ALLOCATION			ADJUST_DISPLAY_PLL_PARAMETERS
+ 
++/****************************************************************************/	
++// Structures used by EnableYUVTable
++/****************************************************************************/	
+ typedef struct _ENABLE_YUV_PARAMETERS
+ {
+   UCHAR ucEnable;                     // ATOM_ENABLE:Enable YUV or ATOM_DISABLE:Disable YUV (RGB)
+@@ -812,20 +1036,27 @@ typedef struct _ENABLE_YUV_PARAMETERS
+ }ENABLE_YUV_PARAMETERS;
+ #define ENABLE_YUV_PS_ALLOCATION ENABLE_YUV_PARAMETERS
+ 
++/****************************************************************************/	
++// Structures used by GetMemoryClockTable
++/****************************************************************************/	
+ typedef struct _GET_MEMORY_CLOCK_PARAMETERS
+ {
+   ULONG ulReturnMemoryClock;          // current memory speed in 10KHz unit
+ } GET_MEMORY_CLOCK_PARAMETERS;
+ #define GET_MEMORY_CLOCK_PS_ALLOCATION  GET_MEMORY_CLOCK_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structures used by GetEngineClockTable
++/****************************************************************************/	
+ typedef struct _GET_ENGINE_CLOCK_PARAMETERS
+ {
+   ULONG ulReturnEngineClock;          // current engine speed in 10KHz unit
+ } GET_ENGINE_CLOCK_PARAMETERS;
+ #define GET_ENGINE_CLOCK_PS_ALLOCATION  GET_ENGINE_CLOCK_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Following Structures and constant may be obsolete
++/****************************************************************************/	
+ //Maxium 8 bytes,the data read in will be placed in the parameter space.
+ //Read operaion successeful when the paramter space is non-zero, otherwise read operation failed
+ typedef struct _READ_EDID_FROM_HW_I2C_DATA_PARAMETERS
+@@ -875,6 +1106,9 @@ typedef struct _SET_UP_HW_I2C_DATA_PARAMETERS
+ /**************************************************************************/
+ #define SPEED_FAN_CONTROL_PS_ALLOCATION   WRITE_ONE_BYTE_HW_I2C_DATA_PARAMETERS
+ 
++/****************************************************************************/	
++// Structures used by PowerConnectorDetectionTable
++/****************************************************************************/	
+ typedef struct	_POWER_CONNECTOR_DETECTION_PARAMETERS
+ {
+   UCHAR   ucPowerConnectorStatus;      //Used for return value 0: detected, 1:not detected
+@@ -891,6 +1125,10 @@ typedef struct POWER_CONNECTOR_DETECTION_PS_ALLOCATION
+ }POWER_CONNECTOR_DETECTION_PS_ALLOCATION;
+ 
+ /****************************LVDS SS Command Table Definitions**********************/
++
++/****************************************************************************/	
++// Structures used by EnableSpreadSpectrumOnPPLLTable
++/****************************************************************************/	
+ typedef struct	_ENABLE_LVDS_SS_PARAMETERS
+ {
+   USHORT  usSpreadSpectrumPercentage;       
+@@ -936,6 +1174,9 @@ typedef struct _SET_PIXEL_CLOCK_PS_ALLOCATION
+ 
+ #define ENABLE_VGA_RENDER_PS_ALLOCATION   SET_PIXEL_CLOCK_PS_ALLOCATION
+ 
++/****************************************************************************/	
++// Structures used by ###
++/****************************************************************************/	
+ typedef struct	_MEMORY_TRAINING_PARAMETERS
+ {
+   ULONG ulTargetMemoryClock;          //In 10Khz unit
+@@ -943,8 +1184,14 @@ typedef struct	_MEMORY_TRAINING_PARAMETERS
+ #define MEMORY_TRAINING_PS_ALLOCATION MEMORY_TRAINING_PARAMETERS
+ 
+ 
+-
+ /****************************LVDS and other encoder command table definitions **********************/
++
++
++/****************************************************************************/	
++// Structures used by LVDSEncoderControlTable   (Before DCE30)
++//                    LVTMAEncoderControlTable  (Before DCE30)
++//                    TMDSAEncoderControlTable  (Before DCE30)
++/****************************************************************************/	
+ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS
+ {
+   USHORT usPixelClock;  // in 10KHz; for bios convenient
+@@ -964,19 +1211,6 @@ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS
+ #define TMDS2_ENCODER_CONTROL_PARAMETERS    TMDS1_ENCODER_CONTROL_PARAMETERS
+ #define TMDS2_ENCODER_CONTROL_PS_ALLOCATION TMDS2_ENCODER_CONTROL_PARAMETERS
+ 
+-typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS
+-{                               
+-  UCHAR    ucEnable;            // Enable or Disable External TMDS encoder
+-  UCHAR    ucMisc;              // Bit0=0:Enable Single link;=1:Enable Dual link;Bit1 {=0:666RGB, =1:888RGB}
+-  UCHAR    ucPadding[2];
+-}ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS;
+-
+-typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION
+-{                               
+-  ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS    sXTmdsEncoder;
+-  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION   sReserved;     //Caller doesn't need to init this portion
+-}ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION;
+-
+ 
+ //ucTableFormatRevision=1,ucTableContentRevision=2
+ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS_V2
+@@ -1016,6 +1250,32 @@ typedef struct _LVDS_ENCODER_CONTROL_PARAMETERS_V2
+   
+ #define TMDS2_ENCODER_CONTROL_PARAMETERS_V2    TMDS1_ENCODER_CONTROL_PARAMETERS_V2
+ #define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V2 TMDS2_ENCODER_CONTROL_PARAMETERS_V2
++
++#define LVDS_ENCODER_CONTROL_PARAMETERS_V3     LVDS_ENCODER_CONTROL_PARAMETERS_V2
++#define LVDS_ENCODER_CONTROL_PS_ALLOCATION_V3  LVDS_ENCODER_CONTROL_PARAMETERS_V3
++
++#define TMDS1_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3
++#define TMDS1_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS1_ENCODER_CONTROL_PARAMETERS_V3
++
++#define TMDS2_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3
++#define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS2_ENCODER_CONTROL_PARAMETERS_V3
++
++/****************************************************************************/	
++// Structures used by ###
++/****************************************************************************/	
++typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS
++{                               
++  UCHAR    ucEnable;            // Enable or Disable External TMDS encoder
++  UCHAR    ucMisc;              // Bit0=0:Enable Single link;=1:Enable Dual link;Bit1 {=0:666RGB, =1:888RGB}
++  UCHAR    ucPadding[2];
++}ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS;
++
++typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION
++{                               
++  ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS    sXTmdsEncoder;
++  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION   sReserved;     //Caller doesn't need to init this portion
++}ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION;
++
+ #define ENABLE_EXTERNAL_TMDS_ENCODER_PARAMETERS_V2  LVDS_ENCODER_CONTROL_PARAMETERS_V2
+ 
+ typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2
+@@ -1024,7 +1284,15 @@ typedef struct _ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2
+   WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION      sReserved;     //Caller doesn't need to init this portion
+ }ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION_V2;
+ 
++typedef struct _EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION
++{
++  DIG_ENCODER_CONTROL_PARAMETERS            sDigEncoder;
++  WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved;
++}EXTERNAL_ENCODER_CONTROL_PS_ALLOCATION;
+ 
++/****************************************************************************/	
++// Structures used by DVOEncoderControlTable
++/****************************************************************************/	
+ //ucTableFormatRevision=1,ucTableContentRevision=3
+ 
+ //ucDVOConfig:
+@@ -1050,15 +1318,6 @@ typedef struct _DVO_ENCODER_CONTROL_PARAMETERS_V3
+ // bit1=0: non-coherent mode
+ //     =1: coherent mode
+ 
+-#define LVDS_ENCODER_CONTROL_PARAMETERS_V3     LVDS_ENCODER_CONTROL_PARAMETERS_V2
+-#define LVDS_ENCODER_CONTROL_PS_ALLOCATION_V3  LVDS_ENCODER_CONTROL_PARAMETERS_V3
+-
+-#define TMDS1_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3
+-#define TMDS1_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS1_ENCODER_CONTROL_PARAMETERS_V3
+-
+-#define TMDS2_ENCODER_CONTROL_PARAMETERS_V3    LVDS_ENCODER_CONTROL_PARAMETERS_V3
+-#define TMDS2_ENCODER_CONTROL_PS_ALLOCATION_V3 TMDS2_ENCODER_CONTROL_PARAMETERS_V3
+-
+ //==========================================================================================
+ //Only change is here next time when changing encoder parameter definitions again!
+ #define LVDS_ENCODER_CONTROL_PARAMETERS_LAST     LVDS_ENCODER_CONTROL_PARAMETERS_V3
+@@ -1102,20 +1361,23 @@ typedef struct _DVO_ENCODER_CONTROL_PARAMETERS_V3
+ #define PANEL_ENCODER_75FRC_E                  0x00
+ #define PANEL_ENCODER_75FRC_F                  0x80
+ 
+-/**************************************************************************/
+-
++/****************************************************************************/	
++// Structures used by SetVoltageTable
++/****************************************************************************/	
+ #define SET_VOLTAGE_TYPE_ASIC_VDDC             1
+ #define SET_VOLTAGE_TYPE_ASIC_MVDDC            2
+ #define SET_VOLTAGE_TYPE_ASIC_MVDDQ            3
+ #define SET_VOLTAGE_TYPE_ASIC_VDDCI            4
++#define SET_VOLTAGE_INIT_MODE                  5
++#define SET_VOLTAGE_GET_MAX_VOLTAGE            6					//Gets the Max. voltage for the soldered Asic
+ 
+ #define SET_ASIC_VOLTAGE_MODE_ALL_SOURCE       0x1
+ #define SET_ASIC_VOLTAGE_MODE_SOURCE_A         0x2
+ #define SET_ASIC_VOLTAGE_MODE_SOURCE_B         0x4
+ 
+-#define	SET_ASIC_VOLTAGE_MODE_SET_VOLTAGE			 0x0
+-#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOVAL			 0x1	
+-#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOMASK		 0x2
++#define	SET_ASIC_VOLTAGE_MODE_SET_VOLTAGE      0x0
++#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOVAL      0x1	
++#define	SET_ASIC_VOLTAGE_MODE_GET_GPIOMASK     0x2
+ 
+ typedef struct	_SET_VOLTAGE_PARAMETERS
+ {
+@@ -1125,7 +1387,6 @@ typedef struct	_SET_VOLTAGE_PARAMETERS
+   UCHAR    ucReserved;          
+ }SET_VOLTAGE_PARAMETERS;
+ 
+-
+ typedef struct	_SET_VOLTAGE_PARAMETERS_V2
+ {
+   UCHAR    ucVoltageType;               // To tell which voltage to set up, VDDC/MVDDC/MVDDQ
+@@ -1133,13 +1394,23 @@ typedef struct	_SET_VOLTAGE_PARAMETERS_V2
+   USHORT   usVoltageLevel;              // real voltage level
+ }SET_VOLTAGE_PARAMETERS_V2;
+ 
+-
+ typedef struct _SET_VOLTAGE_PS_ALLOCATION
+ {
+   SET_VOLTAGE_PARAMETERS sASICSetVoltage;
+   WRITE_ONE_BYTE_HW_I2C_DATA_PS_ALLOCATION sReserved;
+ }SET_VOLTAGE_PS_ALLOCATION;
+ 
++/****************************************************************************/	
++// Structures used by TVEncoderControlTable
++/****************************************************************************/	
++typedef struct _TV_ENCODER_CONTROL_PARAMETERS
++{
++  USHORT usPixelClock;                // in 10KHz; for bios convenient
++  UCHAR  ucTvStandard;                // See definition "ATOM_TV_NTSC ..."
++  UCHAR  ucAction;                    // 0: turn off encoder
++                                      // 1: setup and turn on encoder
++}TV_ENCODER_CONTROL_PARAMETERS;
++
+ typedef struct _TV_ENCODER_CONTROL_PS_ALLOCATION
+ {
+   TV_ENCODER_CONTROL_PARAMETERS sTVEncoder;          
+@@ -1153,6 +1424,9 @@ typedef struct _TV_ENCODER_CONTROL_PS_ALLOCATION
+ 	#define	USHORT	void*
+ #endif
+ 
++/****************************************************************************/	
++// Structure used in Data.mtb
++/****************************************************************************/	
+ typedef struct _ATOM_MASTER_LIST_OF_DATA_TABLES
+ {
+   USHORT        UtilityPipeLine;	        // Offest for the utility to get parser info,Don't change this position!
+@@ -1195,14 +1469,15 @@ typedef struct _ATOM_MASTER_LIST_OF_DATA_TABLES
+ 	#define	USHORT	UTEMP
+ #endif
+ 
+-
+ typedef struct _ATOM_MASTER_DATA_TABLE
+ { 
+   ATOM_COMMON_TABLE_HEADER sHeader;  
+   ATOM_MASTER_LIST_OF_DATA_TABLES   ListOfDataTables;
+ }ATOM_MASTER_DATA_TABLE;
+ 
+-
++/****************************************************************************/	
++// Structure used in MultimediaCapabilityInfoTable
++/****************************************************************************/	
+ typedef struct _ATOM_MULTIMEDIA_CAPABILITY_INFO
+ {
+   ATOM_COMMON_TABLE_HEADER sHeader;  
+@@ -1213,7 +1488,9 @@ typedef struct _ATOM_MULTIMEDIA_CAPABILITY_INFO
+   UCHAR                    ucHostPortInfo;   // Provides host port configuration information
+ }ATOM_MULTIMEDIA_CAPABILITY_INFO;
+ 
+-
++/****************************************************************************/	
++// Structure used in MultimediaConfigInfoTable
++/****************************************************************************/	
+ typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO
+ {
+   ATOM_COMMON_TABLE_HEADER sHeader;
+@@ -1232,7 +1509,9 @@ typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO
+   UCHAR                    ucVideoInput4Info;// Video Input 4 Type (1:0) F/B setting (2) physical connector ID (5:3) reserved (7:6)
+ }ATOM_MULTIMEDIA_CONFIG_INFO;
+ 
+-/****************************Firmware Info Table Definitions**********************/
++/****************************************************************************/	
++// Structures used in FirmwareInfoTable
++/****************************************************************************/	
+ 
+ // usBIOSCapability Defintion:
+ // Bit 0 = 0: Bios image is not Posted, =1:Bios image is Posted; 
+@@ -1258,7 +1537,7 @@ typedef struct _ATOM_MULTIMEDIA_CONFIG_INFO
+ //Please don't add or expand this bitfield structure below, this one will retire soon.!
+ typedef struct _ATOM_FIRMWARE_CAPABILITY
+ {
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+   USHORT Reserved:3;
+   USHORT HyperMemory_Size:4;
+   USHORT HyperMemory_Support:1;
+@@ -1447,6 +1726,9 @@ typedef struct _ATOM_FIRMWARE_INFO_V1_4
+ 
+ #define ATOM_FIRMWARE_INFO_LAST  ATOM_FIRMWARE_INFO_V1_4
+ 
++/****************************************************************************/	
++// Structures used in IntegratedSystemInfoTable
++/****************************************************************************/	
+ #define IGP_CAP_FLAG_DYNAMIC_CLOCK_EN      0x2
+ #define IGP_CAP_FLAG_AC_CARD               0x4
+ #define IGP_CAP_FLAG_SDVO_CARD             0x8
+@@ -1528,11 +1810,11 @@ typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V2
+ {
+   ATOM_COMMON_TABLE_HEADER   sHeader;
+   ULONG	                     ulBootUpEngineClock;       //in 10kHz unit
+-  ULONG			                 ulReserved1[2];            //must be 0x0 for the reserved
++  ULONG			     ulReserved1[2];            //must be 0x0 for the reserved
+   ULONG	                     ulBootUpUMAClock;          //in 10kHz unit
+   ULONG	                     ulBootUpSidePortClock;     //in 10kHz unit
+   ULONG	                     ulMinSidePortClock;        //in 10kHz unit
+-  ULONG			                 ulReserved2[6];            //must be 0x0 for the reserved
++  ULONG			     ulReserved2[6];            //must be 0x0 for the reserved
+   ULONG                      ulSystemConfig;            //see explanation below
+   ULONG                      ulBootUpReqDisplayVector;
+   ULONG                      ulOtherDisplayMisc;
+@@ -1555,7 +1837,13 @@ typedef struct _ATOM_INTEGRATED_SYSTEM_INFO_V2
+   USHORT                     usUMADataReturnTime;
+   USHORT                     usLinkStatusZeroTime;
+   USHORT                     usReserved;
+-  ULONG                      ulReserved3[101];          //must be 0x0
++  ULONG                      ulHighVoltageHTLinkFreq;     // in 10Khz
++  ULONG                      ulLowVoltageHTLinkFreq;      // in 10Khz
++  USHORT                     usMaxUpStreamHTLinkWidth;
++  USHORT                     usMaxDownStreamHTLinkWidth;
++  USHORT                     usMinUpStreamHTLinkWidth;
++  USHORT                     usMinDownStreamHTLinkWidth;
++  ULONG                      ulReserved3[97];          //must be 0x0
+ }ATOM_INTEGRATED_SYSTEM_INFO_V2;   
+ 
+ /*
+@@ -1564,8 +1852,20 @@ ulBootUpUMAClock:      Boot-up UMA Clock in 10Khz; it must be 0x0 when UMA is no
+ ulBootUpSidePortClock: Boot-up SidePort Clock in 10Khz; it must be 0x0 when SidePort Memory is not present,this could be equal to or less than maximum supported Sideport memory clock
+ 
+ ulSystemConfig:  
+-Bit[0]: =1 PowerExpress mode =0 Non-PowerExpress mode; 
+-Bit[1]=1: system is running at overdrived engine clock =0:system is not running at overdrived engine clock
++Bit[0]=1: PowerExpress mode =0 Non-PowerExpress mode; 
++Bit[1]=1: system boots up at AMD overdrived state or user customized  mode. In this case, driver will just stick to this boot-up mode. No other PowerPlay state
++      =0: system boots up at driver control state. Power state depends on PowerPlay table.
++Bit[2]=1: PWM method is used on NB voltage control. =0: GPIO method is used.
++Bit[3]=1: Only one power state(Performance) will be supported.
++      =0: Multiple power states supported from PowerPlay table.
++Bit[4]=1: CLMC is supported and enabled on current system. 
++      =0: CLMC is not supported or enabled on current system. SBIOS need to support HT link/freq change through ATIF interface.  
++Bit[5]=1: Enable CDLW for all driver control power states. Max HT width is from SBIOS, while Min HT width is determined by display requirement.  
++      =0: CDLW is disabled. If CLMC is enabled case, Min HT width will be set equal to Max HT width. If CLMC disabled case, Max HT width will be applied.
++Bit[6]=1: High Voltage requested for all power states. In this case, voltage will be forced at 1.1v and powerplay table voltage drop/throttling request will be ignored.
++      =0: Voltage settings is determined by powerplay table.
++Bit[7]=1: Enable CLMC as hybrid Mode. CDLD and CILR will be disabled in this case and we're using legacy C1E. This is workaround for CPU(Griffin) performance issue.
++      =0: Enable CLMC as regular mode, CDLD and CILR will be enabled.
+ 
+ ulBootUpReqDisplayVector: This dword is a bit vector indicates what display devices are requested during boot-up. Refer to ATOM_DEVICE_xxx_SUPPORT for the bit vector definitions.
+ 
+@@ -1594,16 +1894,21 @@ ucDockingPinBit:     which bit in this register to read the pin status;
+ ucDockingPinPolarity:Polarity of the pin when docked;
+ 
+ ulCPUCapInfo:        [7:0]=1:Griffin;[7:0]=2:Greyhound;[7:0]=3:K8, other bits reserved for now and must be 0x0
+- 
++
+ usNumberOfCyclesInPeriod:Indicate how many cycles when PWM duty is 100%.
+-usMaxNBVoltage:Voltage regulator dependent PWM value.Set this one to 0xFF if VC without PWM. Set this to 0x0 if no VC at all.
+-usMinNBVoltage:Voltage regulator dependent PWM value.Set this one to 0x00 if VC without PWM or no VC at all.
++usMaxNBVoltage:Max. voltage control value in either PWM or GPIO mode. 
++usMinNBVoltage:Min. voltage control value in either PWM or GPIO mode.
++                    GPIO mode: both usMaxNBVoltage & usMinNBVoltage have a valid value ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE=0
++                    PWM mode: both usMaxNBVoltage & usMinNBVoltage have a valid value ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE=1
++                    GPU SW don't control mode: usMaxNBVoltage & usMinNBVoltage=0 and no care about ulSystemConfig.SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE
+ usBootUpNBVoltage:Boot-up voltage regulator dependent PWM value.
+ 
++ulHTLinkFreq:       Bootup HT link Frequency in 10Khz.
++usMinHTLinkWidth:   Bootup minimum HT link width. If CDLW disabled, this is equal to usMaxHTLinkWidth. 
++                    If CDLW enabled, both upstream and downstream width should be the same during bootup.
++usMaxHTLinkWidth:   Bootup maximum HT link width. If CDLW disabled, this is equal to usMinHTLinkWidth. 
++                    If CDLW enabled, both upstream and downstream width should be the same during bootup.  
+ 
+-ulHTLinkFreq:        Current HT link Frequency in 10Khz.
+-usMinHTLinkWidth:   
+-usMaxHTLinkWidth:
+ usUMASyncStartDelay: Memory access latency, required for watermark calculation 
+ usUMADataReturnTime: Memory access latency, required for watermark calculation
+ usLinkStatusZeroTime:Memory access latency required for watermark calculation, set this to 0x0 for K8 CPU, set a proper value in 0.01 the unit of us 
+@@ -1612,10 +1917,27 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by:
+                      if T0Ttime [5:4]=01b, then usLinkStatusZeroTime=T0Ttime [3:0]*0.5us (0.0 to 7.5us)
+                      if T0Ttime [5:4]=10b, then usLinkStatusZeroTime=T0Ttime [3:0]*2.0us (0.0 to 30us)
+                      if T0Ttime [5:4]=11b, and T0Ttime [3:0]=0x0 to 0xa, then usLinkStatusZeroTime=T0Ttime [3:0]*20us (0.0 to 200us)
++
++ulHighVoltageHTLinkFreq:     HT link frequency for power state with low voltage. If boot up runs in HT1, this must be 0.
++                             This must be less than or equal to ulHTLinkFreq(bootup frequency). 
++ulLowVoltageHTLinkFreq:      HT link frequency for power state with low voltage or voltage scaling 1.0v~1.1v. If boot up runs in HT1, this must be 0.
++                             This must be less than or equal to ulHighVoltageHTLinkFreq.
++
++usMaxUpStreamHTLinkWidth:    Asymmetric link width support in the future, to replace usMaxHTLinkWidth. Not used for now.
++usMaxDownStreamHTLinkWidth:  same as above.
++usMinUpStreamHTLinkWidth:    Asymmetric link width support in the future, to replace usMinHTLinkWidth. Not used for now.
++usMinDownStreamHTLinkWidth:  same as above.
+ */
+ 
++
+ #define SYSTEM_CONFIG_POWEREXPRESS_ENABLE                 0x00000001
+ #define SYSTEM_CONFIG_RUN_AT_OVERDRIVE_ENGINE             0x00000002
++#define SYSTEM_CONFIG_USE_PWM_ON_VOLTAGE                  0x00000004 
++#define SYSTEM_CONFIG_PERFORMANCE_POWERSTATE_ONLY         0x00000008
++#define SYSTEM_CONFIG_CLMC_ENABLED                        0x00000010
++#define SYSTEM_CONFIG_CDLW_ENABLED                        0x00000020
++#define SYSTEM_CONFIG_HIGH_VOLTAGE_REQUESTED              0x00000040
++#define SYSTEM_CONFIG_CLMC_HYBRID_MODE_ENABLED            0x00000080
+ 
+ #define IGP_DDI_SLOT_LANE_CONFIG_MASK                     0x000000FF
+ 
+@@ -1671,14 +1993,16 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by:
+ #define ATOM_DEVICE_DFP2_INDEX                            0x00000007
+ #define ATOM_DEVICE_CV_INDEX                              0x00000008
+ #define ATOM_DEVICE_DFP3_INDEX														0x00000009
+-#define ATOM_DEVICE_RESERVEDA_INDEX                       0x0000000A
+-#define ATOM_DEVICE_RESERVEDB_INDEX                       0x0000000B
++#define ATOM_DEVICE_DFP4_INDEX														0x0000000A
++#define ATOM_DEVICE_DFP5_INDEX														0x0000000B
+ #define ATOM_DEVICE_RESERVEDC_INDEX                       0x0000000C
+ #define ATOM_DEVICE_RESERVEDD_INDEX                       0x0000000D
+ #define ATOM_DEVICE_RESERVEDE_INDEX                       0x0000000E
+ #define ATOM_DEVICE_RESERVEDF_INDEX                       0x0000000F
+-#define ATOM_MAX_SUPPORTED_DEVICE_INFO                    (ATOM_DEVICE_CV_INDEX+2)
++#define ATOM_MAX_SUPPORTED_DEVICE_INFO                    (ATOM_DEVICE_DFP3_INDEX+1)
+ #define ATOM_MAX_SUPPORTED_DEVICE_INFO_2                  ATOM_MAX_SUPPORTED_DEVICE_INFO
++#define ATOM_MAX_SUPPORTED_DEVICE_INFO_3                  (ATOM_DEVICE_DFP5_INDEX + 1 )
++
+ #define ATOM_MAX_SUPPORTED_DEVICE                         (ATOM_DEVICE_RESERVEDF_INDEX+1)
+ 
+ #define ATOM_DEVICE_CRT1_SUPPORT                          (0x1L << ATOM_DEVICE_CRT1_INDEX )
+@@ -1691,9 +2015,11 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by:
+ #define ATOM_DEVICE_DFP2_SUPPORT                          (0x1L << ATOM_DEVICE_DFP2_INDEX)
+ #define ATOM_DEVICE_CV_SUPPORT                            (0x1L << ATOM_DEVICE_CV_INDEX   )
+ #define ATOM_DEVICE_DFP3_SUPPORT													(0x1L << ATOM_DEVICE_DFP3_INDEX )
++#define ATOM_DEVICE_DFP4_SUPPORT													(0x1L << ATOM_DEVICE_DFP4_INDEX )
++#define ATOM_DEVICE_DFP5_SUPPORT													(0x1L << ATOM_DEVICE_DFP5_INDEX )
+ 
+ #define ATOM_DEVICE_CRT_SUPPORT                           ATOM_DEVICE_CRT1_SUPPORT | ATOM_DEVICE_CRT2_SUPPORT
+-#define ATOM_DEVICE_DFP_SUPPORT                           ATOM_DEVICE_DFP1_SUPPORT | ATOM_DEVICE_DFP2_SUPPORT |  ATOM_DEVICE_DFP3_SUPPORT
++#define ATOM_DEVICE_DFP_SUPPORT                           ATOM_DEVICE_DFP1_SUPPORT | ATOM_DEVICE_DFP2_SUPPORT |  ATOM_DEVICE_DFP3_SUPPORT | ATOM_DEVICE_DFP4_SUPPORT | ATOM_DEVICE_DFP5_SUPPORT
+ #define ATOM_DEVICE_TV_SUPPORT                            ATOM_DEVICE_TV1_SUPPORT  | ATOM_DEVICE_TV2_SUPPORT
+ #define ATOM_DEVICE_LCD_SUPPORT                           ATOM_DEVICE_LCD1_SUPPORT | ATOM_DEVICE_LCD2_SUPPORT
+ 
+@@ -1764,10 +2090,9 @@ for Griffin or Greyhound. SBIOS needs to convert to actual time by:
+ //                          =	3-7	Reserved for future I2C engines
+ //		[3-0] - I2C_LINE_MUX  = A Mux number when it's HW assisted I2C or GPIO ID when it's SW I2C
+ 
+-
+ typedef struct _ATOM_I2C_ID_CONFIG
+ {
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+   UCHAR   bfHW_Capable:1;
+   UCHAR   bfHW_EngineID:3;
+   UCHAR   bfI2C_LineMux:4;
+@@ -1785,6 +2110,9 @@ typedef union _ATOM_I2C_ID_CONFIG_ACCESS
+ }ATOM_I2C_ID_CONFIG_ACCESS;
+    
+ 
++/****************************************************************************/	
++// Structure used in GPIO_I2C_InfoTable
++/****************************************************************************/	
+ typedef struct _ATOM_GPIO_I2C_ASSIGMENT
+ {
+   USHORT                    usClkMaskRegisterIndex;
+@@ -1814,13 +2142,16 @@ typedef struct _ATOM_GPIO_I2C_INFO
+   ATOM_GPIO_I2C_ASSIGMENT   asGPIO_Info[ATOM_MAX_SUPPORTED_DEVICE];
+ }ATOM_GPIO_I2C_INFO;
+ 
++/****************************************************************************/	
++// Common Structure used in other structures
++/****************************************************************************/	
+ 
+ #ifndef _H2INC
+   
+ //Please don't add or expand this bitfield structure below, this one will retire soon.!
+ typedef struct _ATOM_MODE_MISC_INFO
+ { 
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+   USHORT Reserved:6;
+   USHORT RGB888:1;
+   USHORT DoubleClock:1;
+@@ -1896,7 +2227,9 @@ typedef union _ATOM_MODE_MISC_INFO_ACCESS
+ //	VESA_HSYNC_WIDTH	=	VESA_HSYNC_TIME	=	EDID_HSPW
+ //	VESA_BORDER			=	EDID_BORDER
+ 
+-
++/****************************************************************************/	
++// Structure used in SetCRTC_UsingDTDTimingTable
++/****************************************************************************/	
+ typedef struct _SET_CRTC_USING_DTD_TIMING_PARAMETERS
+ {
+   USHORT  usH_Size;
+@@ -1914,6 +2247,9 @@ typedef struct _SET_CRTC_USING_DTD_TIMING_PARAMETERS
+   UCHAR   ucPadding[3];
+ }SET_CRTC_USING_DTD_TIMING_PARAMETERS;
+ 
++/****************************************************************************/	
++// Structure used in SetCRTC_TimingTable
++/****************************************************************************/	
+ typedef struct _SET_CRTC_TIMING_PARAMETERS
+ {
+   USHORT                      usH_Total;        // horizontal total
+@@ -1934,7 +2270,11 @@ typedef struct _SET_CRTC_TIMING_PARAMETERS
+ }SET_CRTC_TIMING_PARAMETERS;
+ #define SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION SET_CRTC_TIMING_PARAMETERS
+ 
+-
++/****************************************************************************/	
++// Structure used in StandardVESA_TimingTable
++//                   AnalogTV_InfoTable 
++//                   ComponentVideoInfoTable
++/****************************************************************************/	
+ typedef struct _ATOM_MODE_TIMING
+ {
+   USHORT  usCRTC_H_Total;
+@@ -1956,7 +2296,6 @@ typedef struct _ATOM_MODE_TIMING
+   UCHAR   ucRefreshRate;
+ }ATOM_MODE_TIMING;
+ 
+- 
+ typedef struct _ATOM_DTD_FORMAT
+ {
+   USHORT  usPixClk;
+@@ -1977,12 +2316,19 @@ typedef struct _ATOM_DTD_FORMAT
+   UCHAR   ucRefreshRate;
+ }ATOM_DTD_FORMAT;
+ 
++/****************************************************************************/	
++// Structure used in LVDS_InfoTable 
++//  * Need a document to describe this table
++/****************************************************************************/	
+ #define SUPPORTED_LCD_REFRESHRATE_30Hz          0x0004
+ #define SUPPORTED_LCD_REFRESHRATE_40Hz          0x0008
+ #define SUPPORTED_LCD_REFRESHRATE_50Hz          0x0010
+ #define SUPPORTED_LCD_REFRESHRATE_60Hz          0x0020
+ 
+-/****************************LVDS Info Table Definitions **********************/
++//Once DAL sees this CAP is set, it will read EDID from LCD on its own instead of using sLCDTiming in ATOM_LVDS_INFO_V12. 
++//Other entries in ATOM_LVDS_INFO_V12 are still valid/useful to DAL 
++#define	LCDPANEL_CAP_READ_EDID									0x1
++
+ //ucTableFormatRevision=1
+ //ucTableContentRevision=1
+ typedef struct _ATOM_LVDS_INFO
+@@ -2111,9 +2457,9 @@ typedef struct _ATOM_SPREAD_SPECTRUM_INFO
+   ATOM_SPREAD_SPECTRUM_ASSIGNMENT   asSS_Info[ATOM_MAX_SS_ENTRY];
+ }ATOM_SPREAD_SPECTRUM_INFO;
+ 
+-
+-
+-
++/****************************************************************************/	
++// Structure used in AnalogTV_InfoTable (Top level)
++/****************************************************************************/	
+ //ucTVBootUpDefaultStd definiton:
+ 
+ //ATOM_TV_NTSC                1
+@@ -2125,7 +2471,6 @@ typedef struct _ATOM_SPREAD_SPECTRUM_INFO
+ //ATOM_TV_PAL60               7
+ //ATOM_TV_SECAM               8
+ 
+-
+ //ucTVSuppportedStd definition:
+ #define NTSC_SUPPORT          0x1
+ #define NTSCJ_SUPPORT         0x2
+@@ -2215,7 +2560,15 @@ typedef struct _ATOM_ANALOG_TV_INFO
+ #define ATOM_DFP3_DTD_MODE_TBL_ADDR     (ATOM_DFP3_EDID_ADDR + ATOM_EDID_RAW_DATASIZE)
+ #define ATOM_DFP3_STD_MODE_TBL_ADDR     (ATOM_DFP3_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE)
+ 
+-#define ATOM_DP_TRAINING_TBL_ADDR				(ATOM_DFP3_STD_MODE_TBL_ADDR+ATOM_STD_MODE_SUPPORT_TBL_SIZE)       
++#define ATOM_DFP4_EDID_ADDR             (ATOM_DFP3_STD_MODE_TBL_ADDR + ATOM_STD_MODE_SUPPORT_TBL_SIZE)
++#define ATOM_DFP4_DTD_MODE_TBL_ADDR     (ATOM_DFP4_EDID_ADDR + ATOM_EDID_RAW_DATASIZE)
++#define ATOM_DFP4_STD_MODE_TBL_ADDR     (ATOM_DFP4_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE)
++
++#define ATOM_DFP5_EDID_ADDR             (ATOM_DFP4_STD_MODE_TBL_ADDR + ATOM_STD_MODE_SUPPORT_TBL_SIZE)
++#define ATOM_DFP5_DTD_MODE_TBL_ADDR     (ATOM_DFP5_EDID_ADDR + ATOM_EDID_RAW_DATASIZE)
++#define ATOM_DFP5_STD_MODE_TBL_ADDR     (ATOM_DFP5_DTD_MODE_TBL_ADDR + ATOM_DTD_MODE_SUPPORT_TBL_SIZE)
++
++#define ATOM_DP_TRAINING_TBL_ADDR				(ATOM_DFP5_STD_MODE_TBL_ADDR+ATOM_STD_MODE_SUPPORT_TBL_SIZE)       
+ 
+ #define ATOM_STACK_STORAGE_START        (ATOM_DP_TRAINING_TBL_ADDR+256)       
+ #define ATOM_STACK_STORAGE_END          ATOM_STACK_STORAGE_START+512        
+@@ -2228,6 +2581,15 @@ typedef struct _ATOM_ANALOG_TV_INFO
+ #define	ATOM_VRAM_BLOCK_NEEDS_NO_RESERVATION   0x1
+ #define	ATOM_VRAM_BLOCK_NEEDS_RESERVATION      0x0
+ 
++/***********************************************************************************/	
++// Structure used in VRAM_UsageByFirmwareTable
++// Note1: This table is filled by SetBiosReservationStartInFB in CoreCommSubs.asm
++//        at running time.   
++// note2: From RV770, the memory is more than 32bit addressable, so we will change 
++//        ucTableFormatRevision=1,ucTableContentRevision=4, the strcuture remains 
++//        exactly same as 1.1 and 1.2 (1.3 is never in use), but ulStartAddrUsedByFirmware 
++//        (in offset to start of memory address) is KB aligned instead of byte aligend.
++/***********************************************************************************/	
+ #define ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO			1
+ 
+ typedef struct _ATOM_FIRMWARE_VRAM_RESERVE_INFO
+@@ -2243,8 +2605,9 @@ typedef struct _ATOM_VRAM_USAGE_BY_FIRMWARE
+   ATOM_FIRMWARE_VRAM_RESERVE_INFO	asFirmwareVramReserveInfo[ATOM_MAX_FIRMWARE_VRAM_USAGE_INFO];
+ }ATOM_VRAM_USAGE_BY_FIRMWARE;
+ 
+-/**************************************************************************/
+-//GPIO Pin lut table definition
++/****************************************************************************/	
++// Structure used in GPIO_Pin_LUTTable
++/****************************************************************************/	
+ typedef struct _ATOM_GPIO_PIN_ASSIGNMENT
+ {
+   USHORT                   usGpioPin_AIndex;
+@@ -2258,9 +2621,9 @@ typedef struct _ATOM_GPIO_PIN_LUT
+   ATOM_GPIO_PIN_ASSIGNMENT	asGPIO_Pin[1];
+ }ATOM_GPIO_PIN_LUT;
+ 
+-/**************************************************************************/
+-
+-
++/****************************************************************************/	
++// Structure used in ComponentVideoInfoTable	
++/****************************************************************************/	
+ #define GPIO_PIN_ACTIVE_HIGH          0x1
+ 
+ #define MAX_SUPPORTED_CV_STANDARDS    5
+@@ -2350,8 +2713,9 @@ typedef struct _ATOM_COMPONENT_VIDEO_INFO_V21
+ 
+ #define ATOM_COMPONENT_VIDEO_INFO_LAST  ATOM_COMPONENT_VIDEO_INFO_V21
+ 
+-/**************************************************************************/
+-//Object table starts here
++/****************************************************************************/	
++// Structure used in object_InfoTable
++/****************************************************************************/	
+ typedef struct _ATOM_OBJECT_HEADER
+ { 
+   ATOM_COMMON_TABLE_HEADER	sHeader;
+@@ -2596,9 +2960,9 @@ typedef struct _ATOM_ROUTER_DATA_CLOCK_PATH_SELECT_RECORD
+ #define ATOM_ROUTER_MUX_PIN_STATE_MASK								0x0f
+ #define ATOM_ROUTER_MUX_PIN_SINGLE_STATE_COMPLEMENT		0x01
+ 
+-/**************************************************************************/
+-//ASIC voltage data table starts here
+-
++/****************************************************************************/	
++// ASIC voltage data table
++/****************************************************************************/	
+ typedef struct  _ATOM_VOLTAGE_INFO_HEADER
+ {
+    USHORT   usVDDCBaseLevel;                //In number of 50mv unit
+@@ -2824,13 +3188,16 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S0_CV_DIN                  0x00002000L
+ #define ATOM_S0_CV_MASK                 (ATOM_S0_CV+ATOM_S0_CV_DIN)
+ 
+-
+ #define ATOM_S0_DFP1                    0x00010000L
+ #define ATOM_S0_DFP2                    0x00020000L
+ #define ATOM_S0_LCD1                    0x00040000L
+ #define ATOM_S0_LCD2                    0x00080000L
+ #define ATOM_S0_TV2                     0x00100000L
+ #define ATOM_S0_DFP3										0x00200000L
++#define ATOM_S0_DFP4										0x00400000L
++#define ATOM_S0_DFP5										0x00800000L
++
++#define ATOM_S0_DFP_MASK                ATOM_S0_DFP1 | ATOM_S0_DFP2 | ATOM_S0_DFP3 | ATOM_S0_DFP4 | ATOM_S0_DFP5
+ 
+ #define ATOM_S0_FAD_REGISTER_BUG        0x02000000L // If set, indicates we are running a PCIE asic with 
+                                                     // the FAD/HDP reg access bug.  Bit is read by DAL
+@@ -2888,7 +3255,6 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S1_ROM_LOCATION_MASK       0x0000FFFFL
+ #define ATOM_S1_PCI_BUS_DEV_MASK        0xFFFF0000L
+ 
+-     
+ //	BIOS_2_SCRATCH Definition
+ #define ATOM_S2_TV1_STANDARD_MASK       0x0000000FL
+ #define ATOM_S2_CURRENT_BL_LEVEL_MASK   0x0000FF00L
+@@ -2904,12 +3270,14 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S2_DFP2_DPMS_STATE         0x00800000L
+ #define ATOM_S2_CV_DPMS_STATE           0x01000000L
+ #define ATOM_S2_DFP3_DPMS_STATE					0x02000000L
++#define ATOM_S2_DFP4_DPMS_STATE					0x04000000L
++#define ATOM_S2_DFP5_DPMS_STATE					0x08000000L
+ 
+-#define ATOM_S2_DEVICE_DPMS_STATE       (ATOM_S2_CRT1_DPMS_STATE+ATOM_S2_LCD1_DPMS_STATE+ATOM_S2_TV1_DPMS_STATE+\
+-                                        ATOM_S2_DFP1I_DPMS_STATE+ATOM_S2_CRT2_DPMS_STATE+ATOM_S2_LCD2_DPMS_STATE+\
+-                                        ATOM_S2_TV2_DPMS_STATE+ATOM_S2_DFP1X_DPMS_STATE+ATOM_S2_CV_DPMS_STATE+\
+-                                        ATOM_S2_DFP3_DPMS_STATE)
++#define ATOM_S2_DFP_DPM_STATE           ATOM_S2_DFP1_DPMS_STATE | ATOM_S2_DFP2_DPMS_STATE | ATOM_S2_DFP3_DPMS_STATE | ATOM_S2_DFP4_DPMS_STATE | ATOM_S2_DFP5_DPMS_STATE
+ 
++#define ATOM_S2_DEVICE_DPMS_STATE       (ATOM_S2_CRT1_DPMS_STATE+ATOM_S2_LCD1_DPMS_STATE+ATOM_S2_TV1_DPMS_STATE+\
++                                        ATOM_S2_DFP_DPMS_STATE+ATOM_S2_CRT2_DPMS_STATE+ATOM_S2_LCD2_DPMS_STATE+\
++                                        ATOM_S2_TV2_DPMS_STATE+ATOM_S2_CV_DPMS_STATE
+ 
+ #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASK       0x0C000000L
+ #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASK_SHIFT 26
+@@ -2938,6 +3306,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S2_DFP2_DPMS_STATEb2       0x80
+ #define ATOM_S2_CV_DPMS_STATEb3         0x01
+ #define ATOM_S2_DFP3_DPMS_STATEb3				0x02
++#define ATOM_S2_DFP4_DPMS_STATEb3				0x04
++#define ATOM_S2_DFP5_DPMS_STATEb3				0x08
+ 
+ #define ATOM_S2_DEVICE_DPMS_MASKw1      0x3FF
+ #define ATOM_S2_FORCEDLOWPWRMODE_STATE_MASKb3     0x0C
+@@ -2957,6 +3327,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S3_DFP2_ACTIVE             0x00000080L
+ #define ATOM_S3_CV_ACTIVE               0x00000100L
+ #define ATOM_S3_DFP3_ACTIVE							0x00000200L
++#define ATOM_S3_DFP4_ACTIVE							0x00000400L
++#define ATOM_S3_DFP5_ACTIVE							0x00000800L
+ 
+ #define ATOM_S3_DEVICE_ACTIVE_MASK      0x000003FFL
+ 
+@@ -2973,8 +3345,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S3_DFP2_CRTC_ACTIVE        0x00800000L
+ #define ATOM_S3_CV_CRTC_ACTIVE          0x01000000L
+ #define ATOM_S3_DFP3_CRTC_ACTIVE				0x02000000L
++#define ATOM_S3_DFP4_CRTC_ACTIVE				0x04000000L
++#define ATOM_S3_DFP5_CRTC_ACTIVE				0x08000000L
+ 
+-#define ATOM_S3_DEVICE_CRTC_ACTIVE_MASK 0x03FF0000L
++#define ATOM_S3_DEVICE_CRTC_ACTIVE_MASK 0x0FFF0000L
+ #define ATOM_S3_ASIC_GUI_ENGINE_HUNG    0x20000000L
+ #define ATOM_S3_ALLOW_FAST_PWR_SWITCH   0x40000000L
+ #define ATOM_S3_RQST_GPU_USE_MIN_PWR    0x80000000L
+@@ -2990,8 +3364,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S3_DFP2_ACTIVEb0           0x80
+ #define ATOM_S3_CV_ACTIVEb1             0x01
+ #define ATOM_S3_DFP3_ACTIVEb1						0x02
++#define ATOM_S3_DFP4_ACTIVEb1						0x04
++#define ATOM_S3_DFP5_ACTIVEb1						0x08
+ 
+-#define ATOM_S3_ACTIVE_CRTC1w0          0x3FF
++#define ATOM_S3_ACTIVE_CRTC1w0          0xFFF
+ 
+ #define ATOM_S3_CRT1_CRTC_ACTIVEb2      0x01
+ #define ATOM_S3_LCD1_CRTC_ACTIVEb2      0x02
+@@ -3003,8 +3379,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S3_DFP2_CRTC_ACTIVEb2      0x80
+ #define ATOM_S3_CV_CRTC_ACTIVEb3        0x01
+ #define ATOM_S3_DFP3_CRTC_ACTIVEb3			0x02
++#define ATOM_S3_DFP4_CRTC_ACTIVEb3			0x04
++#define ATOM_S3_DFP5_CRTC_ACTIVEb3			0x08
+ 
+-#define ATOM_S3_ACTIVE_CRTC2w1          0x3FF
++#define ATOM_S3_ACTIVE_CRTC2w1          0xFFF
+ 
+ #define ATOM_S3_ASIC_GUI_ENGINE_HUNGb3	0x20
+ #define ATOM_S3_ALLOW_FAST_PWR_SWITCHb3 0x40
+@@ -3015,13 +3393,11 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S4_LCD1_REFRESH_MASK       0x0000FF00L
+ #define ATOM_S4_LCD1_REFRESH_SHIFT      8
+ 
+-
+ //Byte aligned defintion for BIOS usage
+ #define ATOM_S4_LCD1_PANEL_ID_MASKb0	  0x0FF
+ #define ATOM_S4_LCD1_REFRESH_MASKb1		  ATOM_S4_LCD1_PANEL_ID_MASKb0
+ #define ATOM_S4_VRAM_INFO_MASKb2        ATOM_S4_LCD1_PANEL_ID_MASKb0
+ 
+-
+ // BIOS_5_SCRATCH Definition, BIOS_5_SCRATCH is used by Firmware only !!!!
+ #define ATOM_S5_DOS_REQ_CRT1b0          0x01
+ #define ATOM_S5_DOS_REQ_LCD1b0          0x02
+@@ -3033,6 +3409,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S5_DOS_REQ_DFP2b0          0x80
+ #define ATOM_S5_DOS_REQ_CVb1            0x01
+ #define ATOM_S5_DOS_REQ_DFP3b1					0x02
++#define ATOM_S5_DOS_REQ_DFP4b1					0x04
++#define ATOM_S5_DOS_REQ_DFP5b1					0x08
+ 
+ #define ATOM_S5_DOS_REQ_DEVICEw0        0x03FF
+ 
+@@ -3046,6 +3424,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S5_DOS_REQ_DFP2            0x0080
+ #define ATOM_S5_DOS_REQ_CV              0x0100
+ #define ATOM_S5_DOS_REQ_DFP3						0x0200
++#define ATOM_S5_DOS_REQ_DFP4						0x0400
++#define ATOM_S5_DOS_REQ_DFP5						0x0800
+ 
+ #define ATOM_S5_DOS_FORCE_CRT1b2        ATOM_S5_DOS_REQ_CRT1b0
+ #define ATOM_S5_DOS_FORCE_TV1b2         ATOM_S5_DOS_REQ_TV1b0
+@@ -3073,7 +3453,6 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S6_DISPLAY_STATE_CHANGE    0x00004000L        //This bit is recycled when ATOM_BIOS_INFO_BIOS_SCRATCH6_SCL2_REDEFINE is set,previously it's SCL2_H_expansion
+ #define ATOM_S6_I2C_STATE_CHANGE        0x00008000L        //This bit is recycled,when ATOM_BIOS_INFO_BIOS_SCRATCH6_SCL2_REDEFINE is set,previously it's SCL2_V_expansion
+ 
+-
+ #define ATOM_S6_ACC_REQ_CRT1            0x00010000L
+ #define ATOM_S6_ACC_REQ_LCD1            0x00020000L
+ #define ATOM_S6_ACC_REQ_TV1             0x00040000L
+@@ -3084,8 +3463,10 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S6_ACC_REQ_DFP2            0x00800000L
+ #define ATOM_S6_ACC_REQ_CV              0x01000000L
+ #define ATOM_S6_ACC_REQ_DFP3						0x02000000L
++#define ATOM_S6_ACC_REQ_DFP4						0x04000000L
++#define ATOM_S6_ACC_REQ_DFP5						0x08000000L
+ 
+-#define ATOM_S6_ACC_REQ_MASK                0x03FF0000L
++#define ATOM_S6_ACC_REQ_MASK                0x0FFF0000L
+ #define ATOM_S6_SYSTEM_POWER_MODE_CHANGE    0x10000000L
+ #define ATOM_S6_ACC_BLOCK_DISPLAY_SWITCH    0x20000000L
+ #define ATOM_S6_VRI_BRIGHTNESS_CHANGE       0x40000000L
+@@ -3117,6 +3498,8 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO{
+ #define ATOM_S6_ACC_REQ_DFP2b2          0x80
+ #define ATOM_S6_ACC_REQ_CVb3            0x01
+ #define ATOM_S6_ACC_REQ_DFP3b3					0x02
++#define ATOM_S6_ACC_REQ_DFP4b3					0x04
++#define ATOM_S6_ACC_REQ_DFP5b3					0x08
+ 
+ #define ATOM_S6_ACC_REQ_DEVICEw1        ATOM_S5_DOS_REQ_DEVICEw0
+ #define ATOM_S6_SYSTEM_POWER_MODE_CHANGEb3 0x10
+@@ -3391,7 +3774,7 @@ typedef struct _ATOM_TV_MODE_SCALER_PTR
+ typedef struct _ATOM_STANDARD_VESA_TIMING
+ {
+   ATOM_COMMON_TABLE_HEADER sHeader;  
+-  ATOM_MODE_TIMING				 aModeTimings[16];      // 16 is not the real array number, just for initial allocation
++  ATOM_DTD_FORMAT 				 aModeTimings[16];      // 16 is not the real array number, just for initial allocation
+ }ATOM_STANDARD_VESA_TIMING;
+ 
+ 
+@@ -3426,7 +3809,7 @@ typedef struct _ATOM_MEMORY_VENDOR_BLOCK{
+ 
+ 
+ typedef struct _ATOM_MEMORY_SETTING_ID_CONFIG{
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+ 	ULONG												ucMemBlkId:8;
+ 	ULONG												ulMemClockRange:24;
+ #else
+@@ -3470,6 +3853,11 @@ typedef struct _ATOM_INIT_REG_BLOCK{
+ #define VALUE_SAME_AS_ABOVE     0
+ #define VALUE_MASK_DWORD        0x84
+ 
++#define INDEX_ACCESS_RANGE_BEGIN	    (VALUE_DWORD + 1)
++#define INDEX_ACCESS_RANGE_END		    (INDEX_ACCESS_RANGE_BEGIN + 1)
++#define VALUE_INDEX_ACCESS_SINGLE	    (INDEX_ACCESS_RANGE_END + 1)
++
++
+ typedef struct _ATOM_MC_INIT_PARAM_TABLE
+ { 
+   ATOM_COMMON_TABLE_HEADER		sHeader;
+@@ -3508,6 +3896,28 @@ typedef struct _ATOM_MC_INIT_PARAM_TABLE
+ #define QIMONDA             INFINEON
+ #define PROMOS              MOSEL
+ 
++/////////////Support for GDDR5 MC uCode to reside in upper 64K of ROM/////////////
++
++#define UCODE_ROM_START_ADDRESS		0x1c000
++#define	UCODE_SIGNATURE			0x4375434d // 'MCuC' - MC uCode
++
++//uCode block header for reference
++
++typedef struct _MCuCodeHeader
++{
++  ULONG  ulSignature;
++  UCHAR  ucRevision;
++  UCHAR  ucChecksum;
++  UCHAR  ucReserved1;
++  UCHAR  ucReserved2;
++  USHORT usParametersLength;
++  USHORT usUCodeLength;
++  USHORT usReserved1;
++  USHORT usReserved2;
++} MCuCodeHeader;
++
++//////////////////////////////////////////////////////////////////////////////////
++
+ #define ATOM_MAX_NUMBER_OF_VRAM_MODULE	16
+ 
+ #define ATOM_VRAM_MODULE_MEMORY_VENDOR_ID_MASK	0xF
+@@ -3564,6 +3974,42 @@ typedef struct _ATOM_VRAM_MODULE_V2
+ typedef	struct _ATOM_MEMORY_TIMING_FORMAT
+ {
+ 	ULONG											 ulClkRange;				// memory clock in 10kHz unit, when target memory clock is below this clock, use this memory timing 	
++  union{
++	  USHORT										 usMRS;							// mode register						
++    USHORT                     usDDR3_MR0;
++  };
++  union{
++	  USHORT										 usEMRS;						// extended mode register
++    USHORT                     usDDR3_MR1;
++  };
++	UCHAR											 ucCL;							// CAS latency
++	UCHAR											 ucWL;							// WRITE Latency				
++	UCHAR											 uctRAS;						// tRAS
++	UCHAR											 uctRC;							// tRC	
++	UCHAR											 uctRFC;						// tRFC
++	UCHAR											 uctRCDR;						// tRCDR	
++	UCHAR											 uctRCDW;						// tRCDW
++	UCHAR											 uctRP;							// tRP
++	UCHAR											 uctRRD;						// tRRD	
++	UCHAR											 uctWR;							// tWR
++	UCHAR											 uctWTR;						// tWTR
++	UCHAR											 uctPDIX;						// tPDIX
++	UCHAR											 uctFAW;						// tFAW
++	UCHAR											 uctAOND;						// tAOND
++  union 
++  {
++    struct {
++	    UCHAR											 ucflag;						// flag to control memory timing calculation. bit0= control EMRS2 Infineon 
++	    UCHAR											 ucReserved;						
++    };
++    USHORT                   usDDR3_MR2;
++  };
++}ATOM_MEMORY_TIMING_FORMAT;
++
++
++typedef	struct _ATOM_MEMORY_TIMING_FORMAT_V1
++{
++	ULONG											 ulClkRange;				// memory clock in 10kHz unit, when target memory clock is below this clock, use this memory timing 	
+ 	USHORT										 usMRS;							// mode register						
+ 	USHORT										 usEMRS;						// extended mode register
+ 	UCHAR											 ucCL;							// CAS latency
+@@ -3581,16 +4027,31 @@ typedef	struct _ATOM_MEMORY_TIMING_FORMAT
+ 	UCHAR											 uctFAW;						// tFAW
+ 	UCHAR											 uctAOND;						// tAOND
+ 	UCHAR											 ucflag;						// flag to control memory timing calculation. bit0= control EMRS2 Infineon 
+-	UCHAR											 ucReserved;				// 
+-}ATOM_MEMORY_TIMING_FORMAT;
++////////////////////////////////////GDDR parameters///////////////////////////////////
++	UCHAR											 uctCCDL;						// 
++	UCHAR											 uctCRCRL;						// 
++	UCHAR											 uctCRCWL;						// 
++	UCHAR											 uctCKE;						// 
++	UCHAR											 uctCKRSE;						// 
++	UCHAR											 uctCKRSX;						// 
++	UCHAR											 uctFAW32;						// 
++	UCHAR											 ucReserved1;					// 
++	UCHAR											 ucReserved2;					// 
++	UCHAR											 ucTerminator;
++}ATOM_MEMORY_TIMING_FORMAT_V1;
+ 
+-#define	MEM_TIMING_FLAG_APP_MODE								0x01									// =0 mid clock range  =1 high clock range
+ 
+ typedef	struct _ATOM_MEMORY_FORMAT
+ {
+ 	ULONG											 ulDllDisClock;			// memory DLL will be disable when target memory clock is below this clock
+-  USHORT                     usEMRS2Value;      // EMRS2 Value is used for GDDR2 and GDDR4 memory type
+-  USHORT                     usEMRS3Value;      // EMRS3 Value is used for GDDR2 and GDDR4 memory type
++  union{
++    USHORT                     usEMRS2Value;      // EMRS2 Value is used for GDDR2 and GDDR4 memory type
++    USHORT                     usDDR3_Reserved;   // Not used for DDR3 memory
++  };
++  union{
++    USHORT                     usEMRS3Value;      // EMRS3 Value is used for GDDR2 and GDDR4 memory type
++    USHORT                     usDDR3_MR3;        // Used for DDR3 memory
++  };
+   UCHAR                      ucMemoryType;      // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4;[3:0] - must not be used for now;
+   UCHAR                      ucMemoryVenderID;  // Predefined,never change across designs or memory type/vender. If not predefined, vendor detection table gets executed
+   UCHAR                      ucRow;             // Number of Row,in power of 2;
+@@ -3629,6 +4090,79 @@ typedef struct _ATOM_VRAM_MODULE_V3
+ 
+ #define ATOM_VRAM_MODULE		 ATOM_VRAM_MODULE_V3
+ 
++typedef struct _ATOM_VRAM_MODULE_V4
++{
++  ULONG	  ulChannelMapCfg;	                // board dependent parameter: Channel combination
++  USHORT  usModuleSize;                     // size of ATOM_VRAM_MODULE_V4, make it easy for VBIOS to look for next entry of VRAM_MODULE
++  USHORT  usPrivateReserved;                // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!!
++                                            // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS)
++  USHORT  usReserved;
++  UCHAR   ucExtMemoryID;    		            // An external indicator (by hardcode, callback or pin) to tell what is the current memory module
++  UCHAR   ucMemoryType;                     // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4; 0x5:DDR5 [3:0] - Must be 0x0 for now;
++  UCHAR   ucChannelNum;                     // Number of channels present in this module config
++  UCHAR   ucChannelWidth;                   // 0 - 32 bits; 1 - 64 bits
++	UCHAR   ucDensity;                        // _8Mx32, _16Mx32, _16Mx16, _32Mx16
++	UCHAR	  ucFlag;						                // To enable/disable functionalities based on memory type
++	UCHAR	  ucMisc;						                // bit0: 0 - single rank; 1 - dual rank;   bit2: 0 - burstlength 4, 1 - burstlength 8
++  UCHAR		ucVREFI;                          // board dependent parameter
++  UCHAR   ucNPL_RT;                         // board dependent parameter:NPL round trip delay, used for calculate memory timing parameters
++  UCHAR		ucPreamble;                       // [7:4] Write Preamble, [3:0] Read Preamble
++  UCHAR   ucMemorySize;                     // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!!
++                                            // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros
++  UCHAR   ucReserved[3];
++
++//compare with V3, we flat the struct by merging ATOM_MEMORY_FORMAT (as is) into V4 as the same level
++  union{
++    USHORT	usEMRS2Value;                   // EMRS2 Value is used for GDDR2 and GDDR4 memory type
++    USHORT  usDDR3_Reserved;
++  };
++  union{
++    USHORT	usEMRS3Value;                   // EMRS3 Value is used for GDDR2 and GDDR4 memory type
++    USHORT  usDDR3_MR3;                     // Used for DDR3 memory
++  };  
++  UCHAR   ucMemoryVenderID;  		            // Predefined, If not predefined, vendor detection table gets executed
++  UCHAR	  ucRefreshRateFactor;              // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms)
++  UCHAR   ucReserved2[2];
++  ATOM_MEMORY_TIMING_FORMAT  asMemTiming[5];//Memory Timing block sort from lower clock to higher clock
++}ATOM_VRAM_MODULE_V4;
++
++#define VRAM_MODULE_V4_MISC_RANK_MASK       0x3
++#define VRAM_MODULE_V4_MISC_DUAL_RANK       0x1
++#define VRAM_MODULE_V4_MISC_BL_MASK         0x4
++#define VRAM_MODULE_V4_MISC_BL8             0x4
++#define VRAM_MODULE_V4_MISC_DUAL_CS         0x10
++
++typedef struct _ATOM_VRAM_MODULE_V5
++{
++  ULONG	  ulChannelMapCfg;	                // board dependent parameter: Channel combination
++  USHORT  usModuleSize;                     // size of ATOM_VRAM_MODULE_V4, make it easy for VBIOS to look for next entry of VRAM_MODULE
++  USHORT  usPrivateReserved;                // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!!
++                                            // MC_ARB_RAMCFG (includes NOOFBANK,NOOFRANKS,NOOFROWS,NOOFCOLS)
++  USHORT  usReserved;
++  UCHAR   ucExtMemoryID;    		            // An external indicator (by hardcode, callback or pin) to tell what is the current memory module
++  UCHAR   ucMemoryType;                     // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4; 0x5:DDR5 [3:0] - Must be 0x0 for now;
++  UCHAR   ucChannelNum;                     // Number of channels present in this module config
++  UCHAR   ucChannelWidth;                   // 0 - 32 bits; 1 - 64 bits
++	UCHAR   ucDensity;                        // _8Mx32, _16Mx32, _16Mx16, _32Mx16
++	UCHAR	  ucFlag;						                // To enable/disable functionalities based on memory type
++	UCHAR	  ucMisc;						                // bit0: 0 - single rank; 1 - dual rank;   bit2: 0 - burstlength 4, 1 - burstlength 8
++  UCHAR		ucVREFI;                          // board dependent parameter
++  UCHAR   ucNPL_RT;                         // board dependent parameter:NPL round trip delay, used for calculate memory timing parameters
++  UCHAR		ucPreamble;                       // [7:4] Write Preamble, [3:0] Read Preamble
++  UCHAR   ucMemorySize;                     // BIOS internal reserved space to optimize code size, updated by the compiler, shouldn't be modified manually!!
++                                            // Total memory size in unit of 16MB for CONFIG_MEMSIZE - bit[23:0] zeros
++  UCHAR   ucReserved[3];
++
++//compare with V3, we flat the struct by merging ATOM_MEMORY_FORMAT (as is) into V4 as the same level
++  USHORT	usEMRS2Value;      		            // EMRS2 Value is used for GDDR2 and GDDR4 memory type
++  USHORT	usEMRS3Value;      		            // EMRS3 Value is used for GDDR2 and GDDR4 memory type
++  UCHAR   ucMemoryVenderID;  		            // Predefined, If not predefined, vendor detection table gets executed
++  UCHAR	  ucRefreshRateFactor;              // [1:0]=RefreshFactor (00=8ms, 01=16ms, 10=32ms,11=64ms)
++  UCHAR	  ucFIFODepth;			                // FIFO depth supposes to be detected during vendor detection, but if we dont do vendor detection we have to hardcode FIFO Depth
++  UCHAR   ucCDR_Bandwidth;		   // [0:3]=Read CDR bandwidth, [4:7] - Write CDR Bandwidth
++  ATOM_MEMORY_TIMING_FORMAT_V1  asMemTiming[5];//Memory Timing block sort from lower clock to higher clock
++}ATOM_VRAM_MODULE_V5;
++
+ typedef struct _ATOM_VRAM_INFO_V2
+ {
+   ATOM_COMMON_TABLE_HEADER   sHeader;
+@@ -3651,6 +4185,21 @@ typedef struct _ATOM_VRAM_INFO_V3
+ 
+ #define	ATOM_VRAM_INFO_LAST	     ATOM_VRAM_INFO_V3
+ 
++typedef struct _ATOM_VRAM_INFO_V4
++{
++  ATOM_COMMON_TABLE_HEADER   sHeader;
++	USHORT										 usMemAdjustTblOffset;													 // offset of ATOM_INIT_REG_BLOCK structure for memory vendor specific MC adjust setting
++	USHORT										 usMemClkPatchTblOffset;												 //	offset of ATOM_INIT_REG_BLOCK structure for memory clock specific MC setting
++	USHORT										 usRerseved;
++	UCHAR           	         ucMemDQ7_0ByteRemap;													   // DQ line byte remap, =0: Memory Data line BYTE0, =1: BYTE1, =2: BYTE2, =3: BYTE3
++  ULONG                      ulMemDQ7_0BitRemap;                             // each DQ line ( 7~0) use 3bits, like: DQ0=Bit[2:0], DQ1:[5:3], ... DQ7:[23:21]
++  UCHAR                      ucReservde[4]; 
++  UCHAR                      ucNumOfVRAMModule;
++  ATOM_VRAM_MODULE_V4		     aVramInfo[ATOM_MAX_NUMBER_OF_VRAM_MODULE];      // just for allocation, real number of blocks is in ucNumOfVRAMModule;
++	ATOM_INIT_REG_BLOCK				 asMemPatch;																		 // for allocation
++																																						 //	ATOM_INIT_REG_BLOCK				 aMemAdjust;
++}ATOM_VRAM_INFO_V4;
++
+ typedef struct _ATOM_VRAM_GPIO_DETECTION_INFO
+ {
+   ATOM_COMMON_TABLE_HEADER   sHeader;
+@@ -3954,6 +4503,7 @@ typedef struct _DP_ENCODER_SERVICE_PARAMETERS
+ #define ATOM_DP_ACTION_TRAINING_PATTERN_SEL				0x04
+ #define ATOM_DP_ACTION_SET_VSWING_PREEMP					0x05
+ #define ATOM_DP_ACTION_GET_VSWING_PREEMP					0x06
++#define ATOM_DP_ACTION_BLANKING                   0x07
+ 
+ // ucConfig
+ #define ATOM_DP_CONFIG_ENCODER_SEL_MASK						0x03
+@@ -4072,7 +4622,7 @@ typedef struct  _COMPASSIONATE_DATA
+ 
+ typedef struct _ATOM_CONNECTOR_INFO
+ {
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
++#if ATOM_BIG_ENDIAN
+   UCHAR   bfConnectorType:4;
+   UCHAR   bfAssociatedDAC:4;
+ #else
+@@ -4469,17 +5019,6 @@ typedef struct  _ATOM_POWERPLAY_INFO_V3
+ #define ENABLE_LVDS_SS_PARAMETERS_V3  ENABLE_SPREAD_SPECTRUM_ON_PPLL  
+ 
+ /*********************************************************************************/
+-#define ATOM_S3_SCALER2_ACTIVE_H          0x00004000L
+-#define ATOM_S3_SCALER2_ACTIVE_V          0x00008000L
+-#define ATOM_S6_REQ_SCALER2_H             0x00004000L
+-#define ATOM_S6_REQ_SCALER2_V             0x00008000L
+- 
+-#define ATOM_S3_SCALER1_ACTIVE_H          ATOM_S3_LCD_FULLEXPANSION_ACTIVE
+-#define ATOM_S3_SCALER1_ACTIVE_V          ATOM_S3_LCD_EXPANSION_ASPEC_RATIO_ACTIVE
+- 
+-#define ATOM_S6_REQ_SCALER1_H             ATOM_S6_REQ_LCD_EXPANSION_FULL
+-#define ATOM_S6_REQ_SCALER1_V             ATOM_S6_REQ_LCD_EXPANSION_ASPEC_RATIO
+-//==========================================================================================
+ 
+ #pragma pack() // BIOS data must use byte aligment
+ 
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5333495..d65a3e4 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -26,8 +26,11 @@
+ # _ladir passes a dummy rpath to libtool so the thing will actually link
+ # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
+ 
++radeon_drv_la_LIBADD =
++
+ if DRI
+ RADEON_DRI_SRCS = radeon_dri.c
++radeon_drv_la_LIBADD += $(DRI_LIBS)
+ endif
+ 
+ RADEON_ATOMBIOS_SOURCES = \
+@@ -70,6 +73,11 @@ AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ @XMODES_CFLAGS@ -DDISABLE_EASF -DENABLE_A
+ 
+ INCLUDES = -I$(srcdir)/AtomBios/includes
+ 
++if XSERVER_LIBPCIACCESS
++ati_drv_la_LIBADD = $(PCIACCESS_LIBS)
++radeon_drv_la_LIBADD += $(PCIACCESS_LIBS)
++endif
++
+ ati_drv_la_LTLIBRARIES = ati_drv.la
+ ati_drv_la_LDFLAGS = -module -avoid-version
+ ati_drv_ladir = @moduledir@/drivers
+@@ -80,7 +88,7 @@ radeon_drv_la_LTLIBRARIES = radeon_drv.la
+ radeon_drv_la_LDFLAGS = -module -avoid-version
+ radeon_drv_ladir = @moduledir@/drivers
+ radeon_drv_la_SOURCES = \
+-	radeon_accel.c radeon_cursor.c radeon_dga.c \
++	radeon_accel.c radeon_cursor.c radeon_dga.c radeon_legacy_memory.c \
+ 	radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \
+ 	radeon_vip.c radeon_misc.c radeon_probe.c \
+ 	legacy_crtc.c legacy_output.c \
+@@ -120,7 +128,6 @@ EXTRA_DIST = \
+ 	radeon_render.c \
+ 	radeon_accelfuncs.c \
+ 	radeon_textured_videofuncs.c \
+-	\
+ 	ati.h \
+ 	ativersion.h \
+ 	generic_bus.h \
+diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
+index a740df8..633c5d3 100644
+--- a/src/ati_pciids_gen.h
++++ b/src/ati_pciids_gen.h
+@@ -1,4 +1,5 @@
+ #define PCI_CHIP_RV380_3150 0x3150
++#define PCI_CHIP_RV380_3151 0x3151
+ #define PCI_CHIP_RV380_3152 0x3152
+ #define PCI_CHIP_RV380_3154 0x3154
+ #define PCI_CHIP_RV380_3E50 0x3E50
+@@ -330,6 +331,9 @@
+ #define PCI_CHIP_R600_940A 0x940A
+ #define PCI_CHIP_R600_940B 0x940B
+ #define PCI_CHIP_R600_940F 0x940F
++#define PCI_CHIP_RV770_9440 0x9440
++#define PCI_CHIP_RV770_9441 0x9441
++#define PCI_CHIP_RV770_9442 0x9442
+ #define PCI_CHIP_RV610_94C0 0x94C0
+ #define PCI_CHIP_RV610_94C1 0x94C1
+ #define PCI_CHIP_RV610_94C3 0x94C3
+@@ -347,6 +351,7 @@
+ #define PCI_CHIP_RV670_9507 0x9507
+ #define PCI_CHIP_RV670_950F 0x950F
+ #define PCI_CHIP_RV670_9511 0x9511
++#define PCI_CHIP_RV670_9515 0x9515
+ #define PCI_CHIP_RV630_9580 0x9580
+ #define PCI_CHIP_RV630_9581 0x9581
+ #define PCI_CHIP_RV630_9583 0x9583
+diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
+index 363addf..4e2395f 100644
+--- a/src/atombios_crtc.c
++++ b/src/atombios_crtc.c
+@@ -43,11 +43,33 @@
+ 
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+-#include "radeon_dri.h"
+-#include "radeon_sarea.h"
++#include "radeon_drm.h"
+ #include "sarea.h"
+ #endif
+ 
++AtomBiosResult
++atombios_lock_crtc(atomBiosHandlePtr atomBIOS, int crtc, int lock)
++{
++    ENABLE_CRTC_PS_ALLOCATION crtc_data;
++    AtomBiosArgRec data;
++    unsigned char *space;
++
++    crtc_data.ucCRTC = crtc;
++    crtc_data.ucEnable = lock;
++
++    data.exec.index = GetIndexIntoMasterTable(COMMAND, UpdateCRTC_DoubleBufferRegisters);
++    data.exec.dataSpace = (void *)&space;
++    data.exec.pspace = &crtc_data;
++
++    if (RHDAtomBiosFunc(atomBIOS->scrnIndex, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
++	ErrorF("%s CRTC %d success\n", lock? "Lock":"Unlock", crtc);
++	return ATOM_SUCCESS ;
++    }
++
++    ErrorF("Lock CRTC failed\n");
++    return ATOM_NOT_IMPLEMENTED;
++}
++
+ static AtomBiosResult
+ atombios_enable_crtc(atomBiosHandlePtr atomBIOS, int crtc, int state)
+ {
+@@ -105,7 +127,7 @@ atombios_blank_crtc(atomBiosHandlePtr atomBIOS, int crtc, int state)
+     crtc_data.ucCRTC = crtc;
+     crtc_data.ucBlanking = state;
+ 
+-    data.exec.index = offsetof(ATOM_MASTER_LIST_OF_COMMAND_TABLES, BlankCRTC) / sizeof(unsigned short);
++    data.exec.index = GetIndexIntoMasterTable(COMMAND, BlankCRTC);
+     data.exec.dataSpace = (void *)&space;
+     data.exec.pspace = &crtc_data;
+ 
+@@ -146,10 +168,27 @@ atombios_set_crtc_timing(atomBiosHandlePtr atomBIOS, SET_CRTC_TIMING_PARAMETERS_
+ {
+     AtomBiosArgRec data;
+     unsigned char *space;
++    SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION conv_param;
++
++    conv_param.usH_Total		= cpu_to_le16(crtc_param->usH_Total);
++    conv_param.usH_Disp			= cpu_to_le16(crtc_param->usH_Disp);
++    conv_param.usH_SyncStart		= cpu_to_le16(crtc_param->usH_SyncStart);
++    conv_param.usH_SyncWidth		= cpu_to_le16(crtc_param->usH_SyncWidth);
++    conv_param.usV_Total		= cpu_to_le16(crtc_param->usV_Total);
++    conv_param.usV_Disp			= cpu_to_le16(crtc_param->usV_Disp);
++    conv_param.usV_SyncStart		= cpu_to_le16(crtc_param->usV_SyncStart);
++    conv_param.usV_SyncWidth		= cpu_to_le16(crtc_param->usV_SyncWidth);
++    conv_param.susModeMiscInfo.usAccess = cpu_to_le16(crtc_param->susModeMiscInfo.usAccess);
++    conv_param.ucCRTC			= crtc_param->ucCRTC;
++    conv_param.ucOverscanRight		= crtc_param->ucOverscanRight;
++    conv_param.ucOverscanLeft		= crtc_param->ucOverscanLeft;
++    conv_param.ucOverscanBottom		= crtc_param->ucOverscanBottom;
++    conv_param.ucOverscanTop		= crtc_param->ucOverscanTop; 
++    conv_param.ucReserved		= crtc_param->ucReserved;
+ 
+     data.exec.index = GetIndexIntoMasterTable(COMMAND, SetCRTC_Timing);
+     data.exec.dataSpace = (void *)&space;
+-    data.exec.pspace = crtc_param;
++    data.exec.pspace = &conv_param;
+ 
+     if (RHDAtomBiosFunc(atomBIOS->scrnIndex, atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
+ 	ErrorF("Set CRTC Timing success\n");
+@@ -185,7 +224,11 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
+     if (IS_AVIVO_VARIANT) {
+ 	uint32_t temp;
+ 
+-	pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
++	if (IS_DCE3_VARIANT && mode->Clock > 200000) /* range limits??? */
++	    pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
++	else
++	    pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
++
+ 
+ 	RADEONComputePLL(&info->pll, mode->Clock, &temp, &fb_div, &ref_div, &post_div, pll_flags);
+ 	sclock = temp;
+@@ -235,9 +278,9 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
+ 	case 1:
+ 	case 2:
+ 	    spc2_ptr = (PIXEL_CLOCK_PARAMETERS_V2*)&spc_param.sPCLKInput;
+-	    spc2_ptr->usPixelClock = sclock;
+-	    spc2_ptr->usRefDiv = ref_div;
+-	    spc2_ptr->usFbDiv = fb_div;
++	    spc2_ptr->usPixelClock = cpu_to_le16(sclock);
++	    spc2_ptr->usRefDiv = cpu_to_le16(ref_div);
++	    spc2_ptr->usFbDiv = cpu_to_le16(fb_div);
+ 	    spc2_ptr->ucPostDiv = post_div;
+ 	    spc2_ptr->ucPpll = radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1;
+ 	    spc2_ptr->ucCRTC = radeon_crtc->crtc_id;
+@@ -246,9 +289,9 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
+ 	    break;
+ 	case 3:
+ 	    spc3_ptr = (PIXEL_CLOCK_PARAMETERS_V3*)&spc_param.sPCLKInput;
+-	    spc3_ptr->usPixelClock = sclock;
+-	    spc3_ptr->usRefDiv = ref_div;
+-	    spc3_ptr->usFbDiv = fb_div;
++	    spc3_ptr->usPixelClock = cpu_to_le16(sclock);
++	    spc3_ptr->usRefDiv = cpu_to_le16(ref_div);
++	    spc3_ptr->usFbDiv = cpu_to_le16(fb_div);
+ 	    spc3_ptr->ucPostDiv = post_div;
+ 	    spc3_ptr->ucPpll = radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1;
+ 	    spc3_ptr->ucMiscInfo = (radeon_crtc->crtc_id << 2);
+@@ -442,9 +485,6 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ 	    fb_location = fb_location + (char *)crtc->rotatedData - (char *)info->FB;
+ 	}
+ 
+-	/* lock the grph regs */
+-	OUTREG(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset, AVIVO_D1GRPH_UPDATE_LOCK);
+-
+ 	OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location);
+ 	OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS + radeon_crtc->crtc_offset, fb_location);
+ 	OUTREG(AVIVO_D1GRPH_CONTROL + radeon_crtc->crtc_offset, fb_format);
+@@ -459,26 +499,27 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ 	       crtc->scrn->displayWidth);
+ 	OUTREG(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
+ 
+-	/* unlock the grph regs */
+-	OUTREG(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset, 0);
+-
+-	/* lock the mode regs */
+-	OUTREG(AVIVO_D1SCL_UPDATE + radeon_crtc->crtc_offset, AVIVO_D1SCL_UPDATE_LOCK);
+-
+ 	OUTREG(AVIVO_D1MODE_DESKTOP_HEIGHT + radeon_crtc->crtc_offset,
+ 	       		mode->VDisplay);
+ 	OUTREG(AVIVO_D1MODE_VIEWPORT_START + radeon_crtc->crtc_offset, (x << 16) | y);
+ 	OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE + radeon_crtc->crtc_offset,
+ 	       (mode->HDisplay << 16) | mode->VDisplay);
+-	/* unlock the mode regs */
+-	OUTREG(AVIVO_D1SCL_UPDATE + radeon_crtc->crtc_offset, 0);
+ 
++	if (adjusted_mode->Flags & V_INTERLACE)
++	    OUTREG(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset,
++		   AVIVO_D1MODE_INTERLEAVE_EN);
++	else
++	    OUTREG(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset,
++		   0);
+     }
+ 
+     atombios_crtc_set_pll(crtc, adjusted_mode, pll_flags);
+ 
+     atombios_set_crtc_timing(info->atomBIOS, &crtc_timing);
+ 
++    if (info->DispPriority)
++	RADEONInitDispBandwidth(pScrn);
++
+     if (tilingChanged) {
+ 	/* need to redraw front buffer, I guess this can be considered a hack ? */
+ 	/* if this is called during ScreenInit() we don't have pScrn->pScreen yet */
+@@ -492,3 +533,126 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ 
+ }
+ 
++/* Calculate display buffer watermark to prevent buffer underflow */
++void
++RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn,
++			      DisplayModePtr mode1, int pixel_bytes1,
++			      DisplayModePtr mode2, int pixel_bytes2)
++{
++    RADEONInfoPtr info = RADEONPTR(pScrn);
++    RADEONEntPtr pRADEONEnt   = RADEONEntPriv(pScrn);
++    unsigned char *RADEONMMIO = info->MMIO;
++
++    uint32_t dc_lb_memory_split;
++    float mem_bw, peak_disp_bw;
++    float min_mem_eff = 0.8; /* XXX: taken from legacy method */
++    float pix_clk, pix_clk2; /* in MHz */
++
++    /*
++     * Set display0/1 priority up in the memory controller for
++     * modes if the user specifies HIGH for displaypriority
++     * option.
++     */
++    if (info->DispPriority == 2) {
++	uint32_t mc_init_misc_lat_timer = 0;
++	if (info->ChipFamily == CHIP_FAMILY_RV515)
++	    mc_init_misc_lat_timer = INMC(pScrn, RV515_MC_INIT_MISC_LAT_TIMER);
++	else if (info->ChipFamily == CHIP_FAMILY_RS690)
++	    mc_init_misc_lat_timer = INMC(pScrn, RS690_MC_INIT_MISC_LAT_TIMER);
++
++	mc_init_misc_lat_timer &= ~(R300_MC_DISP1R_INIT_LAT_MASK << R300_MC_DISP1R_INIT_LAT_SHIFT);
++	mc_init_misc_lat_timer &= ~(R300_MC_DISP0R_INIT_LAT_MASK << R300_MC_DISP0R_INIT_LAT_SHIFT);
++
++	if (pRADEONEnt->pCrtc[1]->enabled)
++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP1R_INIT_LAT_SHIFT); /* display 1 */
++	if (pRADEONEnt->pCrtc[0]->enabled)
++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP0R_INIT_LAT_SHIFT); /* display 0 */
++
++	if (info->ChipFamily == CHIP_FAMILY_RV515)
++	    OUTMC(pScrn, RV515_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer);
++	else if (info->ChipFamily == CHIP_FAMILY_RS690)
++	    OUTMC(pScrn, RS690_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer);
++    }
++
++    /* XXX: fix me for AVIVO
++     * Determine if there is enough bandwidth for current display mode
++     */
++    mem_bw = info->mclk * (info->RamWidth / 8) * (info->IsDDR ? 2 : 1);
++
++    pix_clk = 0;
++    pix_clk2 = 0;
++    peak_disp_bw = 0;
++    if (mode1) {
++	pix_clk = mode1->Clock/1000.0;
++	peak_disp_bw += (pix_clk * pixel_bytes1);
++    }
++    if (mode2) {
++	pix_clk2 = mode2->Clock/1000.0;
++	peak_disp_bw += (pix_clk2 * pixel_bytes2);
++    }
++
++    if (peak_disp_bw >= mem_bw * min_mem_eff) {
++	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
++		   "You may not have enough display bandwidth for current mode\n"
++		   "If you have flickering problem, try to lower resolution, refresh rate, or color depth\n");
++    }
++
++    /*
++     * Line Buffer Setup
++     * There is a single line buffer shared by both display controllers.
++     * DC_LB_MEMORY_SPLIT controls how that line buffer is shared between the display
++     * controllers.  The paritioning can either be done manually or via one of four
++     * preset allocations specified in bits 1:0:
++     * 0 - line buffer is divided in half and shared between each display controller
++     * 1 - D1 gets 3/4 of the line buffer, D2 gets 1/4
++     * 2 - D1 gets the whole buffer
++     * 3 - D1 gets 1/4 of the line buffer, D2 gets 3/4
++     * Setting bit 2 of DC_LB_MEMORY_SPLIT controls switches to manual allocation mode.
++     * In manual allocation mode, D1 always starts at 0, D1 end/2 is specified in bits
++     * 14:4; D2 allocation follows D1.
++     */
++
++    /* is auto or manual better ? */
++    dc_lb_memory_split = INREG(AVIVO_DC_LB_MEMORY_SPLIT) & ~AVIVO_DC_LB_MEMORY_SPLIT_MASK;
++    dc_lb_memory_split &= ~AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE;
++#if 1
++    /* auto */
++    if (mode1 && mode2) {
++	if (mode1->HDisplay > mode2->HDisplay) {
++	    if (mode1->HDisplay > 2560)
++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_3Q_D2_1Q;
++	    else
++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF;
++	} else if (mode2->HDisplay > mode1->HDisplay) {
++	    if (mode2->HDisplay > 2560)
++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q;
++	    else
++		dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF;
++	} else
++	    dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF;
++    } else if (mode1) {
++	dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_ONLY;
++    } else if (mode2) {
++	dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q;
++    }
++#else
++    /* manual */
++    dc_lb_memory_split |= AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE;
++    dc_lb_memory_split &= ~(AVIVO_DC_LB_DISP1_END_ADR_MASK << AVIVO_DC_LB_DISP1_END_ADR_SHIFT);
++    if (mode1) {
++	dc_lb_memory_split |= ((((mode1->HDisplay / 2) + 64 /*???*/) & AVIVO_DC_LB_DISP1_END_ADR_MASK)
++			       << AVIVO_DC_LB_DISP1_END_ADR_SHIFT);
++    } else if (mode2) {
++	dc_lb_memory_split |= (0 << AVIVO_DC_LB_DISP1_END_ADR_SHIFT);
++    }
++    OUTREG(AVIVO_DC_LB_MEMORY_SPLIT, dc_lb_memory_split);
++#endif
++
++    /*
++     * Watermark setup
++     * TODO...
++     * Unforunately, I haven't been able to dig up the avivo watermark programming
++     * guide yet. -AGD
++     */
++
++}
+diff --git a/src/atombios_output.c b/src/atombios_output.c
+index 51be301..49de04f 100644
+--- a/src/atombios_output.c
++++ b/src/atombios_output.c
+@@ -43,6 +43,8 @@
+ #include "radeon_macros.h"
+ #include "radeon_atombios.h"
+ 
++#include "ati_pciids_gen.h"
++
+ static int
+ atombios_output_dac1_setup(xf86OutputPtr output, DisplayModePtr mode)
+ {
+@@ -78,7 +80,7 @@ atombios_output_dac1_setup(xf86OutputPtr output, DisplayModePtr mode)
+ 	}
+     }
+ 
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     data.exec.index = GetIndexIntoMasterTable(COMMAND, DAC1EncoderControl);
+     data.exec.dataSpace = (void *)&space;
+     data.exec.pspace = &disp_data;
+@@ -128,7 +130,7 @@ atombios_output_dac2_setup(xf86OutputPtr output, DisplayModePtr mode)
+ 	}
+     }
+ 
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     data.exec.index = GetIndexIntoMasterTable(COMMAND, DAC2EncoderControl);
+     data.exec.dataSpace = (void *)&space;
+     data.exec.pspace = &disp_data;
+@@ -188,7 +190,7 @@ atombios_output_tv1_setup(xf86OutputPtr output, DisplayModePtr mode)
+ 	}
+     }
+ 
+-    disp_data.sTVEncoder.usPixelClock = mode->Clock / 10;
++    disp_data.sTVEncoder.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     data.exec.index = GetIndexIntoMasterTable(COMMAND, TVEncoderControl);
+     data.exec.dataSpace = (void *)&space;
+     data.exec.pspace = &disp_data;
+@@ -206,7 +208,8 @@ atombios_output_tv1_setup(xf86OutputPtr output, DisplayModePtr mode)
+ int
+ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode)
+ {
+-    RADEONInfoPtr info       = RADEONPTR(output->scrn);
++    ScrnInfoPtr pScrn = output->scrn;
++    RADEONInfoPtr info       = RADEONPTR(pScrn);
+     ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION disp_data;
+     AtomBiosArgRec data;
+     unsigned char *space;
+@@ -218,7 +221,7 @@ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode)
+     else
+ 	disp_data.sXTmdsEncoder.ucMisc = 0;
+ 
+-    if (!info->dac6bits)
++    if (pScrn->rgbBits == 8)
+ 	disp_data.sXTmdsEncoder.ucMisc |= (1 << 1);
+ 
+     data.exec.index = GetIndexIntoMasterTable(COMMAND, DVOEncoderControl);
+@@ -243,7 +246,7 @@ atombios_output_ddia_setup(xf86OutputPtr output, DisplayModePtr mode)
+     unsigned char *space;
+ 
+     disp_data.sDVOEncoder.ucAction = ATOM_ENABLE;
+-    disp_data.sDVOEncoder.usPixelClock = mode->Clock / 10;
++    disp_data.sDVOEncoder.usPixelClock = cpu_to_le16(mode->Clock / 10);
+ 
+     if (mode->Clock > 165000)
+ 	disp_data.sDVOEncoder.usDevAttr.sDigAttrib.ucAttribute = PANEL_ENCODER_MISC_DUAL;
+@@ -264,84 +267,110 @@ atombios_output_ddia_setup(xf86OutputPtr output, DisplayModePtr mode)
+ }
+ 
+ static int
+-atombios_output_tmds1_setup(xf86OutputPtr output, DisplayModePtr mode)
++atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr mode)
+ {
+-    RADEONInfoPtr info       = RADEONPTR(output->scrn);
+-    TMDS1_ENCODER_CONTROL_PS_ALLOCATION disp_data;
++    RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    ScrnInfoPtr pScrn = output->scrn;
++    RADEONInfoPtr info       = RADEONPTR(pScrn);
++    LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data;
++    LVDS_ENCODER_CONTROL_PS_ALLOCATION_V2 disp_data2;
+     AtomBiosArgRec data;
+     unsigned char *space;
++    int index;
++    int major, minor;
+ 
+-    disp_data.ucAction = 1;
+-    if (mode->Clock > 165000)
+-	disp_data.ucMisc = 1;
+-    else
+-	disp_data.ucMisc = 0;
+-    disp_data.usPixelClock = mode->Clock / 10;
+-    data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl);
+-    data.exec.dataSpace = (void *)&space;
+-    data.exec.pspace = &disp_data;
+-
+-    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
+-	ErrorF("Output TMDS1 setup success\n");
+-	return ATOM_SUCCESS;
++    switch (device) {
++    case ATOM_DEVICE_DFP1_INDEX:
++	index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl);
++	break;
++    case ATOM_DEVICE_LCD1_INDEX:
++	index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl);
++	break;
++    case ATOM_DEVICE_DFP3_INDEX:
++	index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl);
++	break;
++    default:
++	return ATOM_NOT_IMPLEMENTED;
++	break;
+     }
+ 
+-    ErrorF("Output TMDS1 setup failed\n");
+-    return ATOM_NOT_IMPLEMENTED;
+-
+-}
+-
+-static int
+-atombios_output_tmds2_setup(xf86OutputPtr output, DisplayModePtr mode)
+-{
+-    RADEONInfoPtr info       = RADEONPTR(output->scrn);
+-    TMDS2_ENCODER_CONTROL_PS_ALLOCATION disp_data;
+-    AtomBiosArgRec data;
+-    unsigned char *space;
+-
+-    disp_data.ucAction = 1;
+-    if (mode->Clock > 165000)
+-	disp_data.ucMisc = 1;
+-    else
+-	disp_data.ucMisc = 0;
+-    disp_data.usPixelClock = mode->Clock / 10;
+-    data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl);
+-    data.exec.dataSpace = (void *)&space;
+-    data.exec.pspace = &disp_data;
++    atombios_get_command_table_version(info->atomBIOS, index, &major, &minor);
+ 
+-    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
+-	ErrorF("Output TMDS2 setup success\n");
+-	return ATOM_SUCCESS;
++    /*ErrorF("table is %d %d\n", major, minor);*/
++    switch (major) {
++    case 0:
++    case 1:
++	switch (minor) {
++	case 1:
++	    disp_data.ucMisc = 0;
++	    disp_data.ucAction = PANEL_ENCODER_ACTION_ENABLE;
++	    if (radeon_output->type == OUTPUT_HDMI)
++		disp_data.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
++	    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
++	    if (device == ATOM_DEVICE_LCD1_INDEX) {
++		if (radeon_output->lvds_misc & (1 << 0))
++		    disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
++		if (radeon_output->lvds_misc & (1 << 1))
++		    disp_data.ucMisc |= (1 << 1);
++	    } else {
++		if (mode->Clock > 165000)
++		    disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
++		if (pScrn->rgbBits == 8)
++		    disp_data.ucMisc |= (1 << 1);
++	    }
++	    data.exec.pspace = &disp_data;
++	    break;
++	case 2:
++	case 3:
++	    disp_data2.ucMisc = 0;
++	    disp_data2.ucAction = PANEL_ENCODER_ACTION_ENABLE;
++	    if (minor == 3) {
++		if (radeon_output->coherent_mode) {
++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_COHERENT;
++		    xf86DrvMsg(output->scrn->scrnIndex, X_INFO, "Coherent Mode enabled\n");
++		}
++	    }
++	    if (radeon_output->type == OUTPUT_HDMI)
++		disp_data2.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
++	    disp_data2.usPixelClock = cpu_to_le16(mode->Clock / 10);
++	    disp_data2.ucTruncate = 0;
++	    disp_data2.ucSpatial = 0;
++	    disp_data2.ucTemporal = 0;
++	    disp_data2.ucFRC = 0;
++	    if (device == ATOM_DEVICE_LCD1_INDEX) {
++		if (radeon_output->lvds_misc & (1 << 0))
++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
++		if (radeon_output->lvds_misc & (1 << 5)) {
++		    disp_data2.ucSpatial = PANEL_ENCODER_SPATIAL_DITHER_EN;
++		    if (radeon_output->lvds_misc & (1 << 1))
++			disp_data2.ucSpatial |= PANEL_ENCODER_SPATIAL_DITHER_DEPTH;
++		}
++		if (radeon_output->lvds_misc & (1 << 6)) {
++		    disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN;
++		    if (radeon_output->lvds_misc & (1 << 1))
++			disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH;
++		    if (((radeon_output->lvds_misc >> 2) & 0x3) == 2)
++			disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4;
++		}
++	    } else {
++		if (mode->Clock > 165000)
++		    disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
++	    }
++	    data.exec.pspace = &disp_data2;
++	    break;
++	}
++	break;
+     }
+ 
+-    ErrorF("Output TMDS2 setup failed\n");
+-    return ATOM_NOT_IMPLEMENTED;
+-}
+-
+-static int
+-atombios_output_lvds_setup(xf86OutputPtr output, DisplayModePtr mode)
+-{
+-    RADEONInfoPtr info       = RADEONPTR(output->scrn);
+-    LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data;
+-    AtomBiosArgRec data;
+-    unsigned char *space;
+-
+-    disp_data.ucAction = 1;
+-    if (mode->Clock > 165000)
+-	disp_data.ucMisc = 1;
+-    else
+-	disp_data.ucMisc = 0;
+-    disp_data.usPixelClock = mode->Clock / 10;
+-    data.exec.index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl);
++    data.exec.index = index;
+     data.exec.dataSpace = (void *)&space;
+-    data.exec.pspace = &disp_data;
+ 
+     if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
+-	ErrorF("Output LVDS setup success\n");
++	ErrorF("Output digital setup success\n");
+ 	return ATOM_SUCCESS;
+     }
+ 
+-    ErrorF("Output LVDS setup failed\n");
++    ErrorF("Output digital setup failed\n");
+     return ATOM_NOT_IMPLEMENTED;
+ }
+ 
+@@ -355,7 +384,7 @@ atombios_output_dig1_setup(xf86OutputPtr output, DisplayModePtr mode)
+     unsigned char *space;
+ 
+     disp_data.ucAction = 1;
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     disp_data.ucConfig = ATOM_ENCODER_CONFIG_TRANSMITTER1;
+     if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) {
+ 	if (radeon_output->coherent_mode) {
+@@ -406,7 +435,7 @@ atombios_output_dig1_transmitter_setup(xf86OutputPtr output, DisplayModePtr mode
+     unsigned char *space;
+ 
+     disp_data.ucAction = ATOM_TRANSMITTER_ACTION_ENABLE;
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     disp_data.ucConfig = ATOM_TRANSMITTER_CONFIG_DIG1_ENCODER | ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL;
+ 
+     if (info->IsIGP && (radeon_output->TMDSType == TMDS_UNIPHY)) {
+@@ -464,7 +493,7 @@ atombios_output_dig2_setup(xf86OutputPtr output, DisplayModePtr mode)
+     unsigned char *space;
+ 
+     disp_data.ucAction = 1;
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     disp_data.ucConfig = ATOM_ENCODER_CONFIG_TRANSMITTER2;
+     if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) {
+ 	if (radeon_output->coherent_mode) {
+@@ -515,7 +544,7 @@ atombios_output_dig2_transmitter_setup(xf86OutputPtr output, DisplayModePtr mode
+     unsigned char *space;
+ 
+     disp_data.ucAction = ATOM_TRANSMITTER_ACTION_ENABLE;
+-    disp_data.usPixelClock = mode->Clock / 10;
++    disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
+     disp_data.ucConfig = ATOM_TRANSMITTER_CONFIG_DIG2_ENCODER | ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL;
+ 
+     if (info->IsIGP && (radeon_output->TMDSType == TMDS_UNIPHY)) {
+@@ -600,34 +629,6 @@ atombios_output_scaler_setup(xf86OutputPtr output, DisplayModePtr mode)
+ 
+ }
+ 
+-static void
+-dfp_disable_dither(xf86OutputPtr output, int device)
+-{
+-    RADEONInfoPtr info       = RADEONPTR(output->scrn);
+-    unsigned char *RADEONMMIO = info->MMIO;
+-
+-    switch (device) {
+-    case ATOM_DEVICE_DFP1_SUPPORT:
+-	OUTREG(AVIVO_TMDSA_BIT_DEPTH_CONTROL, 0); /* TMDSA */
+-	break;
+-    case ATOM_DEVICE_DFP2_SUPPORT:
+-	if ((info->ChipFamily == CHIP_FAMILY_RS600) ||
+-	    (info->ChipFamily == CHIP_FAMILY_RS690) ||
+-	    (info->ChipFamily == CHIP_FAMILY_RS740))
+-	    OUTREG(AVIVO_DDIA_BIT_DEPTH_CONTROL, 0); /* DDIA */
+-	else
+-	    OUTREG(AVIVO_DVOA_BIT_DEPTH_CONTROL, 0); /* DVO */
+-	break;
+-    /*case ATOM_DEVICE_LCD1_SUPPORT:*/ /* LVDS panels need dither enabled */
+-    case ATOM_DEVICE_DFP3_SUPPORT:
+-	OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, 0); /* LVTMA */
+-	break;
+-    default:
+-	break;
+-    }
+-
+-}
+-
+ static AtomBiosResult
+ atombios_display_device_control(atomBiosHandlePtr atomBIOS, int device, Bool state)
+ {
+@@ -896,6 +897,30 @@ atombios_set_output_crtc_source(xf86OutputPtr output)
+     return;
+ }
+ 
++static void
++atombios_apply_output_quirks(xf86OutputPtr output)
++{
++    RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr info       = RADEONPTR(output->scrn);
++    unsigned char *RADEONMMIO = info->MMIO;
++
++    /* Funky macbooks */
++    if ((info->Chipset == PCI_CHIP_RV530_71C5) &&
++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x106b) &&
++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0080)) {
++	if (radeon_output->MonType == MT_LCD) {
++	    if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) {
++		uint32_t lvtma_bit_depth_control = INREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL);
++
++		lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_TRUNCATE_EN;
++		lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_SPATIAL_DITHER_EN;
++
++		OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, lvtma_bit_depth_control);
++	    }
++	}
++    }
++}
++
+ void
+ atombios_output_mode_set(xf86OutputPtr output,
+ 			 DisplayModePtr mode,
+@@ -920,10 +945,8 @@ atombios_output_mode_set(xf86OutputPtr output,
+ 	    if (IS_DCE3_VARIANT) {
+ 		atombios_output_dig1_setup(output, adjusted_mode);
+ 		atombios_output_dig1_transmitter_setup(output, adjusted_mode);
+-	    } else {
+-		atombios_output_tmds1_setup(output, adjusted_mode);
+-		dfp_disable_dither(output, ATOM_DEVICE_DFP1_SUPPORT);
+-	    }
++	    } else
++		atombios_output_digital_setup(output, ATOM_DEVICE_DFP1_INDEX, adjusted_mode);
+ 	} else if (radeon_output->devices & ATOM_DEVICE_DFP2_SUPPORT) {
+ 	    if (IS_DCE3_VARIANT) {
+ 		// fix me
+@@ -934,26 +957,21 @@ atombios_output_mode_set(xf86OutputPtr output,
+ 		    atombios_output_ddia_setup(output, adjusted_mode);
+ 		else
+ 		    atombios_external_tmds_setup(output, adjusted_mode);
+-		dfp_disable_dither(output, ATOM_DEVICE_DFP2_SUPPORT);
+ 	    }
+ 	} else if (radeon_output->devices & ATOM_DEVICE_DFP3_SUPPORT) {
+ 	    if (IS_DCE3_VARIANT) {
+ 		atombios_output_dig2_setup(output, adjusted_mode);
+ 		atombios_output_dig2_transmitter_setup(output, adjusted_mode);
+-	    } else {
+-		atombios_output_tmds2_setup(output, adjusted_mode);
+-		dfp_disable_dither(output, ATOM_DEVICE_DFP3_SUPPORT);
+-	    }
++	    } else
++		atombios_output_digital_setup(output, ATOM_DEVICE_DFP3_INDEX, adjusted_mode);
+ 	}
+     } else if (radeon_output->MonType == MT_LCD) {
+ 	if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) {
+ 	    if (IS_DCE3_VARIANT) {
+ 		atombios_output_dig2_setup(output, adjusted_mode);
+ 		atombios_output_dig2_transmitter_setup(output, adjusted_mode);
+-	    } else {
+-		atombios_output_lvds_setup(output, adjusted_mode);
+-		dfp_disable_dither(output, ATOM_DEVICE_LCD1_SUPPORT);
+-	    }
++	    } else
++		atombios_output_digital_setup(output, ATOM_DEVICE_LCD1_INDEX, adjusted_mode);
+ 	}
+     } else if ((radeon_output->MonType == MT_CTV) ||
+ 	       (radeon_output->MonType == MT_STV) ||
+@@ -964,7 +982,7 @@ atombios_output_mode_set(xf86OutputPtr output,
+ 	    atombios_output_dac2_setup(output, adjusted_mode);
+ 	atombios_output_tv1_setup(output, adjusted_mode);
+     }
+-
++    atombios_apply_output_quirks(output);
+ }
+ 
+ static AtomBiosResult
+@@ -979,19 +997,19 @@ atom_bios_dac_load_detect(atomBiosHandlePtr atomBIOS, xf86OutputPtr output)
+     dac_data.sDacload.ucMisc = 0;
+ 
+     if (radeon_output->devices & ATOM_DEVICE_CRT1_SUPPORT) {
+-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CRT1_SUPPORT;
++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CRT1_SUPPORT);
+ 	if (radeon_output->DACType == DAC_PRIMARY)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_A;
+ 	else if (radeon_output->DACType == DAC_TVDAC)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_B;
+     } else if (radeon_output->devices & ATOM_DEVICE_CRT2_SUPPORT) {
+-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CRT2_SUPPORT;
++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CRT2_SUPPORT);
+ 	if (radeon_output->DACType == DAC_PRIMARY)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_A;
+ 	else if (radeon_output->DACType == DAC_TVDAC)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_B;
+     } else if (radeon_output->devices & ATOM_DEVICE_CV_SUPPORT) {
+-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_CV_SUPPORT;
++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_CV_SUPPORT);
+ 	if (radeon_output->DACType == DAC_PRIMARY)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_A;
+ 	else if (radeon_output->DACType == DAC_TVDAC)
+@@ -999,7 +1017,7 @@ atom_bios_dac_load_detect(atomBiosHandlePtr atomBIOS, xf86OutputPtr output)
+ 	if (IS_DCE3_VARIANT)
+ 	    dac_data.sDacload.ucMisc = 1;
+     } else if (radeon_output->devices & ATOM_DEVICE_TV1_SUPPORT) {
+-	dac_data.sDacload.usDeviceID = ATOM_DEVICE_TV1_SUPPORT;
++	dac_data.sDacload.usDeviceID = cpu_to_le16(ATOM_DEVICE_TV1_SUPPORT);
+ 	if (radeon_output->DACType == DAC_PRIMARY)
+ 	    dac_data.sDacload.ucDacType = ATOM_DAC_A;
+ 	else if (radeon_output->DACType == DAC_TVDAC)
+diff --git a/src/bicubic_table.h b/src/bicubic_table.h
+new file mode 100644
+index 0000000..765cfff
+--- /dev/null
++++ b/src/bicubic_table.h
+@@ -0,0 +1,646 @@
++static const uint16_t bicubic_tex_512[] = {
++	0xb266, 0x3c00, 0x3aaa, 0x3155,
++	0xb287, 0x3bf0, 0x3aa2, 0x3175,
++	0xb2a9, 0x3be0, 0x3a9a, 0x3196,
++	0xb2cc, 0x3bd0, 0x3a92, 0x31b7,
++	0xb2ee, 0x3bc0, 0x3a89, 0x31d9,
++	0xb312, 0x3bb0, 0x3a81, 0x31fb,
++	0xb335, 0x3ba0, 0x3a78, 0x321e,
++	0xb359, 0x3b90, 0x3a6f, 0x3241,
++	0xb37d, 0x3b80, 0x3a66, 0x3264,
++	0xb3a2, 0x3b70, 0x3a5d, 0x3288,
++	0xb3c7, 0x3b60, 0x3a54, 0x32ad,
++	0xb3ed, 0x3b51, 0x3a4b, 0x32d1,
++	0xb409, 0x3b41, 0x3a42, 0x32f7,
++	0xb41c, 0x3b31, 0x3a38, 0x331c,
++	0xb42f, 0x3b21, 0x3a2f, 0x3342,
++	0xb443, 0x3b12, 0x3a25, 0x3369,
++	0xb456, 0x3b02, 0x3a1c, 0x3390,
++	0xb46a, 0x3af3, 0x3a12, 0x33b7,
++	0xb47e, 0x3ae3, 0x3a08, 0x33de,
++	0xb492, 0x3ad4, 0x39fe, 0x3403,
++	0xb4a6, 0x3ac5, 0x39f4, 0x3417,
++	0xb4bb, 0x3ab5, 0x39ea, 0x342b,
++	0xb4cf, 0x3aa6, 0x39df, 0x3440,
++	0xb4e4, 0x3a97, 0x39d5, 0x3454,
++	0xb4f9, 0x3a88, 0x39cb, 0x3469,
++	0xb50e, 0x3a79, 0x39c0, 0x347e,
++	0xb523, 0x3a6a, 0x39b6, 0x3493,
++	0xb539, 0x3a5a, 0x39ab, 0x34a8,
++	0xb54e, 0x3a4c, 0x39a0, 0x34be,
++	0xb564, 0x3a3d, 0x3996, 0x34d3,
++	0xb57a, 0x3a2e, 0x398b, 0x34e9,
++	0xb590, 0x3a1f, 0x3980, 0x34ff,
++	0xb5a6, 0x3a10, 0x3975, 0x3515,
++	0xb5bc, 0x3a02, 0x396a, 0x352b,
++	0xb5d2, 0x39f3, 0x395f, 0x3541,
++	0xb5e9, 0x39e4, 0x3954, 0x3557,
++	0xb5ff, 0x39d6, 0x3948, 0x356e,
++	0xb616, 0x39c7, 0x393d, 0x3584,
++	0xb62d, 0x39b9, 0x3932, 0x359b,
++	0xb644, 0x39ab, 0x3926, 0x35b2,
++	0xb65b, 0x399c, 0x391b, 0x35c9,
++	0xb672, 0x398e, 0x3910, 0x35df,
++	0xb68a, 0x3980, 0x3904, 0x35f6,
++	0xb6a1, 0x3972, 0x38f8, 0x360e,
++	0xb6b9, 0x3964, 0x38ed, 0x3625,
++	0xb6d1, 0x3956, 0x38e1, 0x363c,
++	0xb6e8, 0x3948, 0x38d6, 0x3653,
++	0xb700, 0x393a, 0x38ca, 0x366b,
++	0xb719, 0x392c, 0x38be, 0x3682,
++	0xb731, 0x391e, 0x38b2, 0x369a,
++	0xb749, 0x3910, 0x38a7, 0x36b1,
++	0xb762, 0x3902, 0x389b, 0x36c9,
++	0xb77a, 0x38f5, 0x388f, 0x36e1,
++	0xb793, 0x38e7, 0x3883, 0x36f8,
++	0xb7ac, 0x38da, 0x3877, 0x3710,
++	0xb7c5, 0x38cc, 0x386b, 0x3728,
++	0xb7de, 0x38bf, 0x385f, 0x3740,
++	0xb7f7, 0x38b1, 0x3853, 0x3758,
++	0xb808, 0x38a4, 0x3847, 0x3770,
++	0xb815, 0x3897, 0x383b, 0x3788,
++	0xb821, 0x3889, 0x382f, 0x37a0,
++	0xb82e, 0x387c, 0x3823, 0x37b8,
++	0xb83b, 0x386f, 0x3817, 0x37d0,
++	0xb848, 0x3862, 0x380b, 0x37e8,
++	0xb855, 0x3855, 0x3800, 0x3800,
++	0xb862, 0x3848, 0x37e8, 0x380b,
++	0xb86f, 0x383b, 0x37d0, 0x3817,
++	0xb87c, 0x382e, 0x37b8, 0x3823,
++	0xb889, 0x3821, 0x37a0, 0x382f,
++	0xb897, 0x3815, 0x3788, 0x383b,
++	0xb8a4, 0x3808, 0x3770, 0x3847,
++	0xb8b1, 0x37f7, 0x3758, 0x3853,
++	0xb8bf, 0x37de, 0x3740, 0x385f,
++	0xb8cc, 0x37c5, 0x3728, 0x386b,
++	0xb8da, 0x37ac, 0x3710, 0x3877,
++	0xb8e7, 0x3793, 0x36f8, 0x3883,
++	0xb8f5, 0x377a, 0x36e1, 0x388f,
++	0xb902, 0x3762, 0x36c9, 0x389b,
++	0xb910, 0x3749, 0x36b1, 0x38a7,
++	0xb91e, 0x3731, 0x369a, 0x38b2,
++	0xb92c, 0x3719, 0x3682, 0x38be,
++	0xb93a, 0x3700, 0x366b, 0x38ca,
++	0xb948, 0x36e8, 0x3653, 0x38d6,
++	0xb956, 0x36d1, 0x363c, 0x38e1,
++	0xb964, 0x36b9, 0x3625, 0x38ed,
++	0xb972, 0x36a1, 0x360e, 0x38f8,
++	0xb980, 0x368a, 0x35f6, 0x3904,
++	0xb98e, 0x3672, 0x35df, 0x3910,
++	0xb99c, 0x365b, 0x35c9, 0x391b,
++	0xb9ab, 0x3644, 0x35b2, 0x3926,
++	0xb9b9, 0x362d, 0x359b, 0x3932,
++	0xb9c7, 0x3616, 0x3584, 0x393d,
++	0xb9d6, 0x35ff, 0x356e, 0x3948,
++	0xb9e4, 0x35e9, 0x3557, 0x3954,
++	0xb9f3, 0x35d2, 0x3541, 0x395f,
++	0xba02, 0x35bc, 0x352b, 0x396a,
++	0xba10, 0x35a6, 0x3515, 0x3975,
++	0xba1f, 0x3590, 0x34ff, 0x3980,
++	0xba2e, 0x357a, 0x34e9, 0x398b,
++	0xba3d, 0x3564, 0x34d3, 0x3996,
++	0xba4c, 0x354e, 0x34be, 0x39a0,
++	0xba5a, 0x3539, 0x34a8, 0x39ab,
++	0xba6a, 0x3523, 0x3493, 0x39b6,
++	0xba79, 0x350e, 0x347e, 0x39c0,
++	0xba88, 0x34f9, 0x3469, 0x39cb,
++	0xba97, 0x34e4, 0x3454, 0x39d5,
++	0xbaa6, 0x34cf, 0x3440, 0x39df,
++	0xbab5, 0x34bb, 0x342b, 0x39ea,
++	0xbac5, 0x34a6, 0x3417, 0x39f4,
++	0xbad4, 0x3492, 0x3403, 0x39fe,
++	0xbae3, 0x347e, 0x33de, 0x3a08,
++	0xbaf3, 0x346a, 0x33b7, 0x3a12,
++	0xbb02, 0x3456, 0x3390, 0x3a1c,
++	0xbb12, 0x3443, 0x3369, 0x3a25,
++	0xbb21, 0x342f, 0x3342, 0x3a2f,
++	0xbb31, 0x341c, 0x331c, 0x3a38,
++	0xbb41, 0x3409, 0x32f7, 0x3a42,
++	0xbb51, 0x33ed, 0x32d1, 0x3a4b,
++	0xbb60, 0x33c7, 0x32ad, 0x3a54,
++	0xbb70, 0x33a2, 0x3288, 0x3a5d,
++	0xbb80, 0x337d, 0x3264, 0x3a66,
++	0xbb90, 0x3359, 0x3241, 0x3a6f,
++	0xbba0, 0x3335, 0x321e, 0x3a78,
++	0xbbb0, 0x3312, 0x31fb, 0x3a81,
++	0xbbc0, 0x32ee, 0x31d9, 0x3a89,
++	0xbbd0, 0x32cc, 0x31b7, 0x3a92,
++	0xbbe0, 0x32a9, 0x3196, 0x3a9a,
++	0xbbf0, 0x3287, 0x3175, 0x3aa2,
++	0 };
++
++static const uint16_t bicubic_tex_2048[] = {
++	0xb266, 0x3c00, 0x3aaa, 0x3155,
++	0xb26e, 0x3bfc, 0x3aa8, 0x315d,
++	0xb277, 0x3bf8, 0x3aa6, 0x3165,
++	0xb27f, 0x3bf4, 0x3aa4, 0x316d,
++	0xb287, 0x3bf0, 0x3aa2, 0x3175,
++	0xb290, 0x3bec, 0x3aa0, 0x317d,
++	0xb298, 0x3be8, 0x3a9e, 0x3185,
++	0xb2a1, 0x3be4, 0x3a9c, 0x318e,
++	0xb2a9, 0x3be0, 0x3a9a, 0x3196,
++	0xb2b2, 0x3bdc, 0x3a98, 0x319e,
++	0xb2ba, 0x3bd8, 0x3a96, 0x31a6,
++	0xb2c3, 0x3bd4, 0x3a94, 0x31af,
++	0xb2cc, 0x3bd0, 0x3a92, 0x31b7,
++	0xb2d4, 0x3bcc, 0x3a90, 0x31bf,
++	0xb2dd, 0x3bc8, 0x3a8d, 0x31c8,
++	0xb2e6, 0x3bc4, 0x3a8b, 0x31d0,
++	0xb2ee, 0x3bc0, 0x3a89, 0x31d9,
++	0xb2f7, 0x3bbc, 0x3a87, 0x31e1,
++	0xb300, 0x3bb8, 0x3a85, 0x31ea,
++	0xb309, 0x3bb4, 0x3a83, 0x31f2,
++	0xb312, 0x3bb0, 0x3a81, 0x31fb,
++	0xb31a, 0x3bac, 0x3a7e, 0x3204,
++	0xb323, 0x3ba8, 0x3a7c, 0x320c,
++	0xb32c, 0x3ba4, 0x3a7a, 0x3215,
++	0xb335, 0x3ba0, 0x3a78, 0x321e,
++	0xb33e, 0x3b9c, 0x3a76, 0x3226,
++	0xb347, 0x3b98, 0x3a74, 0x322f,
++	0xb350, 0x3b94, 0x3a71, 0x3238,
++	0xb359, 0x3b90, 0x3a6f, 0x3241,
++	0xb362, 0x3b8c, 0x3a6d, 0x3249,
++	0xb36b, 0x3b88, 0x3a6b, 0x3252,
++	0xb374, 0x3b84, 0x3a69, 0x325b,
++	0xb37d, 0x3b80, 0x3a66, 0x3264,
++	0xb387, 0x3b7c, 0x3a64, 0x326d,
++	0xb390, 0x3b78, 0x3a62, 0x3276,
++	0xb399, 0x3b74, 0x3a60, 0x327f,
++	0xb3a2, 0x3b70, 0x3a5d, 0x3288,
++	0xb3ab, 0x3b6c, 0x3a5b, 0x3291,
++	0xb3b5, 0x3b68, 0x3a59, 0x329a,
++	0xb3be, 0x3b64, 0x3a57, 0x32a3,
++	0xb3c7, 0x3b60, 0x3a54, 0x32ad,
++	0xb3d0, 0x3b5c, 0x3a52, 0x32b6,
++	0xb3da, 0x3b58, 0x3a50, 0x32bf,
++	0xb3e3, 0x3b54, 0x3a4d, 0x32c8,
++	0xb3ed, 0x3b51, 0x3a4b, 0x32d1,
++	0xb3f6, 0x3b4d, 0x3a49, 0x32db,
++	0xb3ff, 0x3b49, 0x3a46, 0x32e4,
++	0xb404, 0x3b45, 0x3a44, 0x32ed,
++	0xb409, 0x3b41, 0x3a42, 0x32f7,
++	0xb40e, 0x3b3d, 0x3a3f, 0x3300,
++	0xb412, 0x3b39, 0x3a3d, 0x3309,
++	0xb417, 0x3b35, 0x3a3b, 0x3313,
++	0xb41c, 0x3b31, 0x3a38, 0x331c,
++	0xb421, 0x3b2d, 0x3a36, 0x3326,
++	0xb426, 0x3b29, 0x3a34, 0x332f,
++	0xb42a, 0x3b25, 0x3a31, 0x3339,
++	0xb42f, 0x3b21, 0x3a2f, 0x3342,
++	0xb434, 0x3b1e, 0x3a2c, 0x334c,
++	0xb439, 0x3b1a, 0x3a2a, 0x3355,
++	0xb43e, 0x3b16, 0x3a28, 0x335f,
++	0xb443, 0x3b12, 0x3a25, 0x3369,
++	0xb448, 0x3b0e, 0x3a23, 0x3372,
++	0xb44d, 0x3b0a, 0x3a20, 0x337c,
++	0xb451, 0x3b06, 0x3a1e, 0x3386,
++	0xb456, 0x3b02, 0x3a1c, 0x3390,
++	0xb45b, 0x3afe, 0x3a19, 0x3399,
++	0xb460, 0x3afb, 0x3a17, 0x33a3,
++	0xb465, 0x3af7, 0x3a14, 0x33ad,
++	0xb46a, 0x3af3, 0x3a12, 0x33b7,
++	0xb46f, 0x3aef, 0x3a0f, 0x33c1,
++	0xb474, 0x3aeb, 0x3a0d, 0x33ca,
++	0xb479, 0x3ae7, 0x3a0a, 0x33d4,
++	0xb47e, 0x3ae3, 0x3a08, 0x33de,
++	0xb483, 0x3ae0, 0x3a05, 0x33e8,
++	0xb488, 0x3adc, 0x3a03, 0x33f2,
++	0xb48d, 0x3ad8, 0x3a00, 0x33fc,
++	0xb492, 0x3ad4, 0x39fe, 0x3403,
++	0xb497, 0x3ad0, 0x39fb, 0x3408,
++	0xb49c, 0x3acc, 0x39f9, 0x340d,
++	0xb4a1, 0x3ac8, 0x39f6, 0x3412,
++	0xb4a6, 0x3ac5, 0x39f4, 0x3417,
++	0xb4ac, 0x3ac1, 0x39f1, 0x341c,
++	0xb4b1, 0x3abd, 0x39ef, 0x3421,
++	0xb4b6, 0x3ab9, 0x39ec, 0x3426,
++	0xb4bb, 0x3ab5, 0x39ea, 0x342b,
++	0xb4c0, 0x3ab1, 0x39e7, 0x3430,
++	0xb4c5, 0x3aae, 0x39e5, 0x3435,
++	0xb4ca, 0x3aaa, 0x39e2, 0x343b,
++	0xb4cf, 0x3aa6, 0x39df, 0x3440,
++	0xb4d5, 0x3aa2, 0x39dd, 0x3445,
++	0xb4da, 0x3a9e, 0x39da, 0x344a,
++	0xb4df, 0x3a9b, 0x39d8, 0x344f,
++	0xb4e4, 0x3a97, 0x39d5, 0x3454,
++	0xb4e9, 0x3a93, 0x39d2, 0x345a,
++	0xb4ef, 0x3a8f, 0x39d0, 0x345f,
++	0xb4f4, 0x3a8b, 0x39cd, 0x3464,
++	0xb4f9, 0x3a88, 0x39cb, 0x3469,
++	0xb4fe, 0x3a84, 0x39c8, 0x346e,
++	0xb504, 0x3a80, 0x39c5, 0x3474,
++	0xb509, 0x3a7c, 0x39c3, 0x3479,
++	0xb50e, 0x3a79, 0x39c0, 0x347e,
++	0xb513, 0x3a75, 0x39be, 0x3483,
++	0xb519, 0x3a71, 0x39bb, 0x3489,
++	0xb51e, 0x3a6d, 0x39b8, 0x348e,
++	0xb523, 0x3a6a, 0x39b6, 0x3493,
++	0xb529, 0x3a66, 0x39b3, 0x3499,
++	0xb52e, 0x3a62, 0x39b0, 0x349e,
++	0xb533, 0x3a5e, 0x39ae, 0x34a3,
++	0xb539, 0x3a5a, 0x39ab, 0x34a8,
++	0xb53e, 0x3a57, 0x39a8, 0x34ae,
++	0xb543, 0x3a53, 0x39a6, 0x34b3,
++	0xb549, 0x3a4f, 0x39a3, 0x34b9,
++	0xb54e, 0x3a4c, 0x39a0, 0x34be,
++	0xb554, 0x3a48, 0x399e, 0x34c3,
++	0xb559, 0x3a44, 0x399b, 0x34c9,
++	0xb55e, 0x3a40, 0x3998, 0x34ce,
++	0xb564, 0x3a3d, 0x3996, 0x34d3,
++	0xb569, 0x3a39, 0x3993, 0x34d9,
++	0xb56f, 0x3a35, 0x3990, 0x34de,
++	0xb574, 0x3a32, 0x398d, 0x34e4,
++	0xb57a, 0x3a2e, 0x398b, 0x34e9,
++	0xb57f, 0x3a2a, 0x3988, 0x34ef,
++	0xb585, 0x3a26, 0x3985, 0x34f4,
++	0xb58a, 0x3a23, 0x3983, 0x34f9,
++	0xb590, 0x3a1f, 0x3980, 0x34ff,
++	0xb595, 0x3a1b, 0x397d, 0x3504,
++	0xb59b, 0x3a18, 0x397a, 0x350a,
++	0xb5a0, 0x3a14, 0x3978, 0x350f,
++	0xb5a6, 0x3a10, 0x3975, 0x3515,
++	0xb5ab, 0x3a0d, 0x3972, 0x351a,
++	0xb5b1, 0x3a09, 0x396f, 0x3520,
++	0xb5b6, 0x3a05, 0x396d, 0x3525,
++	0xb5bc, 0x3a02, 0x396a, 0x352b,
++	0xb5c1, 0x39fe, 0x3967, 0x3530,
++	0xb5c7, 0x39fa, 0x3964, 0x3536,
++	0xb5cd, 0x39f7, 0x3961, 0x353c,
++	0xb5d2, 0x39f3, 0x395f, 0x3541,
++	0xb5d8, 0x39ef, 0x395c, 0x3547,
++	0xb5dd, 0x39ec, 0x3959, 0x354c,
++	0xb5e3, 0x39e8, 0x3956, 0x3552,
++	0xb5e9, 0x39e4, 0x3954, 0x3557,
++	0xb5ee, 0x39e1, 0x3951, 0x355d,
++	0xb5f4, 0x39dd, 0x394e, 0x3563,
++	0xb5fa, 0x39d9, 0x394b, 0x3568,
++	0xb5ff, 0x39d6, 0x3948, 0x356e,
++	0xb605, 0x39d2, 0x3946, 0x3573,
++	0xb60b, 0x39cf, 0x3943, 0x3579,
++	0xb610, 0x39cb, 0x3940, 0x357f,
++	0xb616, 0x39c7, 0x393d, 0x3584,
++	0xb61c, 0x39c4, 0x393a, 0x358a,
++	0xb621, 0x39c0, 0x3937, 0x3590,
++	0xb627, 0x39bd, 0x3935, 0x3595,
++	0xb62d, 0x39b9, 0x3932, 0x359b,
++	0xb633, 0x39b5, 0x392f, 0x35a1,
++	0xb638, 0x39b2, 0x392c, 0x35a6,
++	0xb63e, 0x39ae, 0x3929, 0x35ac,
++	0xb644, 0x39ab, 0x3926, 0x35b2,
++	0xb64a, 0x39a7, 0x3924, 0x35b7,
++	0xb64f, 0x39a3, 0x3921, 0x35bd,
++	0xb655, 0x39a0, 0x391e, 0x35c3,
++	0xb65b, 0x399c, 0x391b, 0x35c9,
++	0xb661, 0x3999, 0x3918, 0x35ce,
++	0xb667, 0x3995, 0x3915, 0x35d4,
++	0xb66c, 0x3992, 0x3912, 0x35da,
++	0xb672, 0x398e, 0x3910, 0x35df,
++	0xb678, 0x398a, 0x390d, 0x35e5,
++	0xb67e, 0x3987, 0x390a, 0x35eb,
++	0xb684, 0x3983, 0x3907, 0x35f1,
++	0xb68a, 0x3980, 0x3904, 0x35f6,
++	0xb68f, 0x397c, 0x3901, 0x35fc,
++	0xb695, 0x3979, 0x38fe, 0x3602,
++	0xb69b, 0x3975, 0x38fb, 0x3608,
++	0xb6a1, 0x3972, 0x38f8, 0x360e,
++	0xb6a7, 0x396e, 0x38f6, 0x3613,
++	0xb6ad, 0x396b, 0x38f3, 0x3619,
++	0xb6b3, 0x3967, 0x38f0, 0x361f,
++	0xb6b9, 0x3964, 0x38ed, 0x3625,
++	0xb6bf, 0x3960, 0x38ea, 0x362b,
++	0xb6c5, 0x395d, 0x38e7, 0x3630,
++	0xb6cb, 0x3959, 0x38e4, 0x3636,
++	0xb6d1, 0x3956, 0x38e1, 0x363c,
++	0xb6d6, 0x3952, 0x38de, 0x3642,
++	0xb6dc, 0x394f, 0x38db, 0x3648,
++	0xb6e2, 0x394b, 0x38d9, 0x364d,
++	0xb6e8, 0x3948, 0x38d6, 0x3653,
++	0xb6ee, 0x3944, 0x38d3, 0x3659,
++	0xb6f4, 0x3941, 0x38d0, 0x365f,
++	0xb6fa, 0x393d, 0x38cd, 0x3665,
++	0xb700, 0x393a, 0x38ca, 0x366b,
++	0xb706, 0x3936, 0x38c7, 0x3671,
++	0xb70c, 0x3933, 0x38c4, 0x3676,
++	0xb712, 0x392f, 0x38c1, 0x367c,
++	0xb719, 0x392c, 0x38be, 0x3682,
++	0xb71f, 0x3928, 0x38bb, 0x3688,
++	0xb725, 0x3925, 0x38b8, 0x368e,
++	0xb72b, 0x3921, 0x38b5, 0x3694,
++	0xb731, 0x391e, 0x38b2, 0x369a,
++	0xb737, 0x391a, 0x38af, 0x36a0,
++	0xb73d, 0x3917, 0x38ad, 0x36a5,
++	0xb743, 0x3914, 0x38aa, 0x36ab,
++	0xb749, 0x3910, 0x38a7, 0x36b1,
++	0xb74f, 0x390d, 0x38a4, 0x36b7,
++	0xb755, 0x3909, 0x38a1, 0x36bd,
++	0xb75b, 0x3906, 0x389e, 0x36c3,
++	0xb762, 0x3902, 0x389b, 0x36c9,
++	0xb768, 0x38ff, 0x3898, 0x36cf,
++	0xb76e, 0x38fc, 0x3895, 0x36d5,
++	0xb774, 0x38f8, 0x3892, 0x36db,
++	0xb77a, 0x38f5, 0x388f, 0x36e1,
++	0xb780, 0x38f1, 0x388c, 0x36e7,
++	0xb787, 0x38ee, 0x3889, 0x36ec,
++	0xb78d, 0x38eb, 0x3886, 0x36f2,
++	0xb793, 0x38e7, 0x3883, 0x36f8,
++	0xb799, 0x38e4, 0x3880, 0x36fe,
++	0xb79f, 0x38e0, 0x387d, 0x3704,
++	0xb7a5, 0x38dd, 0x387a, 0x370a,
++	0xb7ac, 0x38da, 0x3877, 0x3710,
++	0xb7b2, 0x38d6, 0x3874, 0x3716,
++	0xb7b8, 0x38d3, 0x3871, 0x371c,
++	0xb7be, 0x38cf, 0x386e, 0x3722,
++	0xb7c5, 0x38cc, 0x386b, 0x3728,
++	0xb7cb, 0x38c9, 0x3868, 0x372e,
++	0xb7d1, 0x38c5, 0x3865, 0x3734,
++	0xb7d7, 0x38c2, 0x3862, 0x373a,
++	0xb7de, 0x38bf, 0x385f, 0x3740,
++	0xb7e4, 0x38bb, 0x385c, 0x3746,
++	0xb7ea, 0x38b8, 0x3859, 0x374c,
++	0xb7f1, 0x38b5, 0x3856, 0x3752,
++	0xb7f7, 0x38b1, 0x3853, 0x3758,
++	0xb7fd, 0x38ae, 0x3850, 0x375e,
++	0xb801, 0x38aa, 0x384d, 0x3764,
++	0xb805, 0x38a7, 0x384a, 0x376a,
++	0xb808, 0x38a4, 0x3847, 0x3770,
++	0xb80b, 0x38a0, 0x3844, 0x3776,
++	0xb80e, 0x389d, 0x3841, 0x377c,
++	0xb811, 0x389a, 0x383e, 0x3782,
++	0xb815, 0x3897, 0x383b, 0x3788,
++	0xb818, 0x3893, 0x3838, 0x378e,
++	0xb81b, 0x3890, 0x3835, 0x3794,
++	0xb81e, 0x388d, 0x3832, 0x379a,
++	0xb821, 0x3889, 0x382f, 0x37a0,
++	0xb824, 0x3886, 0x382c, 0x37a6,
++	0xb828, 0x3883, 0x3829, 0x37ac,
++	0xb82b, 0x387f, 0x3826, 0x37b2,
++	0xb82e, 0x387c, 0x3823, 0x37b8,
++	0xb831, 0x3879, 0x3820, 0x37be,
++	0xb835, 0x3876, 0x381d, 0x37c4,
++	0xb838, 0x3872, 0x381a, 0x37ca,
++	0xb83b, 0x386f, 0x3817, 0x37d0,
++	0xb83e, 0x386c, 0x3814, 0x37d6,
++	0xb841, 0x3868, 0x3811, 0x37dc,
++	0xb845, 0x3865, 0x380e, 0x37e2,
++	0xb848, 0x3862, 0x380b, 0x37e8,
++	0xb84b, 0x385f, 0x3808, 0x37ee,
++	0xb84e, 0x385b, 0x3806, 0x37f4,
++	0xb852, 0x3858, 0x3803, 0x37fa,
++	0xb855, 0x3855, 0x3800, 0x3800,
++	0xb858, 0x3852, 0x37fa, 0x3803,
++	0xb85b, 0x384e, 0x37f4, 0x3806,
++	0xb85f, 0x384b, 0x37ee, 0x3808,
++	0xb862, 0x3848, 0x37e8, 0x380b,
++	0xb865, 0x3845, 0x37e2, 0x380e,
++	0xb868, 0x3841, 0x37dc, 0x3811,
++	0xb86c, 0x383e, 0x37d6, 0x3814,
++	0xb86f, 0x383b, 0x37d0, 0x3817,
++	0xb872, 0x3838, 0x37ca, 0x381a,
++	0xb876, 0x3835, 0x37c4, 0x381d,
++	0xb879, 0x3831, 0x37be, 0x3820,
++	0xb87c, 0x382e, 0x37b8, 0x3823,
++	0xb87f, 0x382b, 0x37b2, 0x3826,
++	0xb883, 0x3828, 0x37ac, 0x3829,
++	0xb886, 0x3824, 0x37a6, 0x382c,
++	0xb889, 0x3821, 0x37a0, 0x382f,
++	0xb88d, 0x381e, 0x379a, 0x3832,
++	0xb890, 0x381b, 0x3794, 0x3835,
++	0xb893, 0x3818, 0x378e, 0x3838,
++	0xb897, 0x3815, 0x3788, 0x383b,
++	0xb89a, 0x3811, 0x3782, 0x383e,
++	0xb89d, 0x380e, 0x377c, 0x3841,
++	0xb8a0, 0x380b, 0x3776, 0x3844,
++	0xb8a4, 0x3808, 0x3770, 0x3847,
++	0xb8a7, 0x3805, 0x376a, 0x384a,
++	0xb8aa, 0x3801, 0x3764, 0x384d,
++	0xb8ae, 0x37fd, 0x375e, 0x3850,
++	0xb8b1, 0x37f7, 0x3758, 0x3853,
++	0xb8b5, 0x37f1, 0x3752, 0x3856,
++	0xb8b8, 0x37ea, 0x374c, 0x3859,
++	0xb8bb, 0x37e4, 0x3746, 0x385c,
++	0xb8bf, 0x37de, 0x3740, 0x385f,
++	0xb8c2, 0x37d7, 0x373a, 0x3862,
++	0xb8c5, 0x37d1, 0x3734, 0x3865,
++	0xb8c9, 0x37cb, 0x372e, 0x3868,
++	0xb8cc, 0x37c5, 0x3728, 0x386b,
++	0xb8cf, 0x37be, 0x3722, 0x386e,
++	0xb8d3, 0x37b8, 0x371c, 0x3871,
++	0xb8d6, 0x37b2, 0x3716, 0x3874,
++	0xb8da, 0x37ac, 0x3710, 0x3877,
++	0xb8dd, 0x37a5, 0x370a, 0x387a,
++	0xb8e0, 0x379f, 0x3704, 0x387d,
++	0xb8e4, 0x3799, 0x36fe, 0x3880,
++	0xb8e7, 0x3793, 0x36f8, 0x3883,
++	0xb8eb, 0x378d, 0x36f2, 0x3886,
++	0xb8ee, 0x3787, 0x36ec, 0x3889,
++	0xb8f1, 0x3780, 0x36e7, 0x388c,
++	0xb8f5, 0x377a, 0x36e1, 0x388f,
++	0xb8f8, 0x3774, 0x36db, 0x3892,
++	0xb8fc, 0x376e, 0x36d5, 0x3895,
++	0xb8ff, 0x3768, 0x36cf, 0x3898,
++	0xb902, 0x3762, 0x36c9, 0x389b,
++	0xb906, 0x375b, 0x36c3, 0x389e,
++	0xb909, 0x3755, 0x36bd, 0x38a1,
++	0xb90d, 0x374f, 0x36b7, 0x38a4,
++	0xb910, 0x3749, 0x36b1, 0x38a7,
++	0xb914, 0x3743, 0x36ab, 0x38aa,
++	0xb917, 0x373d, 0x36a5, 0x38ad,
++	0xb91a, 0x3737, 0x36a0, 0x38af,
++	0xb91e, 0x3731, 0x369a, 0x38b2,
++	0xb921, 0x372b, 0x3694, 0x38b5,
++	0xb925, 0x3725, 0x368e, 0x38b8,
++	0xb928, 0x371f, 0x3688, 0x38bb,
++	0xb92c, 0x3719, 0x3682, 0x38be,
++	0xb92f, 0x3712, 0x367c, 0x38c1,
++	0xb933, 0x370c, 0x3676, 0x38c4,
++	0xb936, 0x3706, 0x3671, 0x38c7,
++	0xb93a, 0x3700, 0x366b, 0x38ca,
++	0xb93d, 0x36fa, 0x3665, 0x38cd,
++	0xb941, 0x36f4, 0x365f, 0x38d0,
++	0xb944, 0x36ee, 0x3659, 0x38d3,
++	0xb948, 0x36e8, 0x3653, 0x38d6,
++	0xb94b, 0x36e2, 0x364d, 0x38d9,
++	0xb94f, 0x36dc, 0x3648, 0x38db,
++	0xb952, 0x36d6, 0x3642, 0x38de,
++	0xb956, 0x36d1, 0x363c, 0x38e1,
++	0xb959, 0x36cb, 0x3636, 0x38e4,
++	0xb95d, 0x36c5, 0x3630, 0x38e7,
++	0xb960, 0x36bf, 0x362b, 0x38ea,
++	0xb964, 0x36b9, 0x3625, 0x38ed,
++	0xb967, 0x36b3, 0x361f, 0x38f0,
++	0xb96b, 0x36ad, 0x3619, 0x38f3,
++	0xb96e, 0x36a7, 0x3613, 0x38f6,
++	0xb972, 0x36a1, 0x360e, 0x38f8,
++	0xb975, 0x369b, 0x3608, 0x38fb,
++	0xb979, 0x3695, 0x3602, 0x38fe,
++	0xb97c, 0x368f, 0x35fc, 0x3901,
++	0xb980, 0x368a, 0x35f6, 0x3904,
++	0xb983, 0x3684, 0x35f1, 0x3907,
++	0xb987, 0x367e, 0x35eb, 0x390a,
++	0xb98a, 0x3678, 0x35e5, 0x390d,
++	0xb98e, 0x3672, 0x35df, 0x3910,
++	0xb992, 0x366c, 0x35da, 0x3912,
++	0xb995, 0x3667, 0x35d4, 0x3915,
++	0xb999, 0x3661, 0x35ce, 0x3918,
++	0xb99c, 0x365b, 0x35c9, 0x391b,
++	0xb9a0, 0x3655, 0x35c3, 0x391e,
++	0xb9a3, 0x364f, 0x35bd, 0x3921,
++	0xb9a7, 0x364a, 0x35b7, 0x3924,
++	0xb9ab, 0x3644, 0x35b2, 0x3926,
++	0xb9ae, 0x363e, 0x35ac, 0x3929,
++	0xb9b2, 0x3638, 0x35a6, 0x392c,
++	0xb9b5, 0x3633, 0x35a1, 0x392f,
++	0xb9b9, 0x362d, 0x359b, 0x3932,
++	0xb9bd, 0x3627, 0x3595, 0x3935,
++	0xb9c0, 0x3621, 0x3590, 0x3937,
++	0xb9c4, 0x361c, 0x358a, 0x393a,
++	0xb9c7, 0x3616, 0x3584, 0x393d,
++	0xb9cb, 0x3610, 0x357f, 0x3940,
++	0xb9cf, 0x360b, 0x3579, 0x3943,
++	0xb9d2, 0x3605, 0x3573, 0x3946,
++	0xb9d6, 0x35ff, 0x356e, 0x3948,
++	0xb9d9, 0x35fa, 0x3568, 0x394b,
++	0xb9dd, 0x35f4, 0x3563, 0x394e,
++	0xb9e1, 0x35ee, 0x355d, 0x3951,
++	0xb9e4, 0x35e9, 0x3557, 0x3954,
++	0xb9e8, 0x35e3, 0x3552, 0x3956,
++	0xb9ec, 0x35dd, 0x354c, 0x3959,
++	0xb9ef, 0x35d8, 0x3547, 0x395c,
++	0xb9f3, 0x35d2, 0x3541, 0x395f,
++	0xb9f7, 0x35cd, 0x353c, 0x3961,
++	0xb9fa, 0x35c7, 0x3536, 0x3964,
++	0xb9fe, 0x35c1, 0x3530, 0x3967,
++	0xba02, 0x35bc, 0x352b, 0x396a,
++	0xba05, 0x35b6, 0x3525, 0x396d,
++	0xba09, 0x35b1, 0x3520, 0x396f,
++	0xba0d, 0x35ab, 0x351a, 0x3972,
++	0xba10, 0x35a6, 0x3515, 0x3975,
++	0xba14, 0x35a0, 0x350f, 0x3978,
++	0xba18, 0x359b, 0x350a, 0x397a,
++	0xba1b, 0x3595, 0x3504, 0x397d,
++	0xba1f, 0x3590, 0x34ff, 0x3980,
++	0xba23, 0x358a, 0x34f9, 0x3983,
++	0xba26, 0x3585, 0x34f4, 0x3985,
++	0xba2a, 0x357f, 0x34ef, 0x3988,
++	0xba2e, 0x357a, 0x34e9, 0x398b,
++	0xba32, 0x3574, 0x34e4, 0x398d,
++	0xba35, 0x356f, 0x34de, 0x3990,
++	0xba39, 0x3569, 0x34d9, 0x3993,
++	0xba3d, 0x3564, 0x34d3, 0x3996,
++	0xba40, 0x355e, 0x34ce, 0x3998,
++	0xba44, 0x3559, 0x34c9, 0x399b,
++	0xba48, 0x3554, 0x34c3, 0x399e,
++	0xba4c, 0x354e, 0x34be, 0x39a0,
++	0xba4f, 0x3549, 0x34b9, 0x39a3,
++	0xba53, 0x3543, 0x34b3, 0x39a6,
++	0xba57, 0x353e, 0x34ae, 0x39a8,
++	0xba5a, 0x3539, 0x34a8, 0x39ab,
++	0xba5e, 0x3533, 0x34a3, 0x39ae,
++	0xba62, 0x352e, 0x349e, 0x39b0,
++	0xba66, 0x3529, 0x3499, 0x39b3,
++	0xba6a, 0x3523, 0x3493, 0x39b6,
++	0xba6d, 0x351e, 0x348e, 0x39b8,
++	0xba71, 0x3519, 0x3489, 0x39bb,
++	0xba75, 0x3513, 0x3483, 0x39be,
++	0xba79, 0x350e, 0x347e, 0x39c0,
++	0xba7c, 0x3509, 0x3479, 0x39c3,
++	0xba80, 0x3504, 0x3474, 0x39c5,
++	0xba84, 0x34fe, 0x346e, 0x39c8,
++	0xba88, 0x34f9, 0x3469, 0x39cb,
++	0xba8b, 0x34f4, 0x3464, 0x39cd,
++	0xba8f, 0x34ef, 0x345f, 0x39d0,
++	0xba93, 0x34e9, 0x345a, 0x39d2,
++	0xba97, 0x34e4, 0x3454, 0x39d5,
++	0xba9b, 0x34df, 0x344f, 0x39d8,
++	0xba9e, 0x34da, 0x344a, 0x39da,
++	0xbaa2, 0x34d5, 0x3445, 0x39dd,
++	0xbaa6, 0x34cf, 0x3440, 0x39df,
++	0xbaaa, 0x34ca, 0x343b, 0x39e2,
++	0xbaae, 0x34c5, 0x3435, 0x39e5,
++	0xbab1, 0x34c0, 0x3430, 0x39e7,
++	0xbab5, 0x34bb, 0x342b, 0x39ea,
++	0xbab9, 0x34b6, 0x3426, 0x39ec,
++	0xbabd, 0x34b1, 0x3421, 0x39ef,
++	0xbac1, 0x34ac, 0x341c, 0x39f1,
++	0xbac5, 0x34a6, 0x3417, 0x39f4,
++	0xbac8, 0x34a1, 0x3412, 0x39f6,
++	0xbacc, 0x349c, 0x340d, 0x39f9,
++	0xbad0, 0x3497, 0x3408, 0x39fb,
++	0xbad4, 0x3492, 0x3403, 0x39fe,
++	0xbad8, 0x348d, 0x33fc, 0x3a00,
++	0xbadc, 0x3488, 0x33f2, 0x3a03,
++	0xbae0, 0x3483, 0x33e8, 0x3a05,
++	0xbae3, 0x347e, 0x33de, 0x3a08,
++	0xbae7, 0x3479, 0x33d4, 0x3a0a,
++	0xbaeb, 0x3474, 0x33ca, 0x3a0d,
++	0xbaef, 0x346f, 0x33c1, 0x3a0f,
++	0xbaf3, 0x346a, 0x33b7, 0x3a12,
++	0xbaf7, 0x3465, 0x33ad, 0x3a14,
++	0xbafb, 0x3460, 0x33a3, 0x3a17,
++	0xbafe, 0x345b, 0x3399, 0x3a19,
++	0xbb02, 0x3456, 0x3390, 0x3a1c,
++	0xbb06, 0x3451, 0x3386, 0x3a1e,
++	0xbb0a, 0x344d, 0x337c, 0x3a20,
++	0xbb0e, 0x3448, 0x3372, 0x3a23,
++	0xbb12, 0x3443, 0x3369, 0x3a25,
++	0xbb16, 0x343e, 0x335f, 0x3a28,
++	0xbb1a, 0x3439, 0x3355, 0x3a2a,
++	0xbb1e, 0x3434, 0x334c, 0x3a2c,
++	0xbb21, 0x342f, 0x3342, 0x3a2f,
++	0xbb25, 0x342a, 0x3339, 0x3a31,
++	0xbb29, 0x3426, 0x332f, 0x3a34,
++	0xbb2d, 0x3421, 0x3326, 0x3a36,
++	0xbb31, 0x341c, 0x331c, 0x3a38,
++	0xbb35, 0x3417, 0x3313, 0x3a3b,
++	0xbb39, 0x3412, 0x3309, 0x3a3d,
++	0xbb3d, 0x340e, 0x3300, 0x3a3f,
++	0xbb41, 0x3409, 0x32f7, 0x3a42,
++	0xbb45, 0x3404, 0x32ed, 0x3a44,
++	0xbb49, 0x33ff, 0x32e4, 0x3a46,
++	0xbb4d, 0x33f6, 0x32db, 0x3a49,
++	0xbb51, 0x33ed, 0x32d1, 0x3a4b,
++	0xbb54, 0x33e3, 0x32c8, 0x3a4d,
++	0xbb58, 0x33da, 0x32bf, 0x3a50,
++	0xbb5c, 0x33d0, 0x32b6, 0x3a52,
++	0xbb60, 0x33c7, 0x32ad, 0x3a54,
++	0xbb64, 0x33be, 0x32a3, 0x3a57,
++	0xbb68, 0x33b5, 0x329a, 0x3a59,
++	0xbb6c, 0x33ab, 0x3291, 0x3a5b,
++	0xbb70, 0x33a2, 0x3288, 0x3a5d,
++	0xbb74, 0x3399, 0x327f, 0x3a60,
++	0xbb78, 0x3390, 0x3276, 0x3a62,
++	0xbb7c, 0x3387, 0x326d, 0x3a64,
++	0xbb80, 0x337d, 0x3264, 0x3a66,
++	0xbb84, 0x3374, 0x325b, 0x3a69,
++	0xbb88, 0x336b, 0x3252, 0x3a6b,
++	0xbb8c, 0x3362, 0x3249, 0x3a6d,
++	0xbb90, 0x3359, 0x3241, 0x3a6f,
++	0xbb94, 0x3350, 0x3238, 0x3a71,
++	0xbb98, 0x3347, 0x322f, 0x3a74,
++	0xbb9c, 0x333e, 0x3226, 0x3a76,
++	0xbba0, 0x3335, 0x321e, 0x3a78,
++	0xbba4, 0x332c, 0x3215, 0x3a7a,
++	0xbba8, 0x3323, 0x320c, 0x3a7c,
++	0xbbac, 0x331a, 0x3204, 0x3a7e,
++	0xbbb0, 0x3312, 0x31fb, 0x3a81,
++	0xbbb4, 0x3309, 0x31f2, 0x3a83,
++	0xbbb8, 0x3300, 0x31ea, 0x3a85,
++	0xbbbc, 0x32f7, 0x31e1, 0x3a87,
++	0xbbc0, 0x32ee, 0x31d9, 0x3a89,
++	0xbbc4, 0x32e6, 0x31d0, 0x3a8b,
++	0xbbc8, 0x32dd, 0x31c8, 0x3a8d,
++	0xbbcc, 0x32d4, 0x31bf, 0x3a90,
++	0xbbd0, 0x32cc, 0x31b7, 0x3a92,
++	0xbbd4, 0x32c3, 0x31af, 0x3a94,
++	0xbbd8, 0x32ba, 0x31a6, 0x3a96,
++	0xbbdc, 0x32b2, 0x319e, 0x3a98,
++	0xbbe0, 0x32a9, 0x3196, 0x3a9a,
++	0xbbe4, 0x32a1, 0x318e, 0x3a9c,
++	0xbbe8, 0x3298, 0x3185, 0x3a9e,
++	0xbbec, 0x3290, 0x317d, 0x3aa0,
++	0xbbf0, 0x3287, 0x3175, 0x3aa2,
++	0xbbf4, 0x327f, 0x316d, 0x3aa4,
++	0xbbf8, 0x3277, 0x3165, 0x3aa6,
++	0xbbfc, 0x326e, 0x315d, 0x3aa8,
++	0 };
++
+diff --git a/src/bicubic_table.py b/src/bicubic_table.py
+new file mode 100755
+index 0000000..232ccb7
+--- /dev/null
++++ b/src/bicubic_table.py
+@@ -0,0 +1,72 @@
++#!/usr/bin/python
++
++import struct
++
++def half(i):
++ fs, fe, fm = ((i >> 31) & 0x1, (i >> 23) & 0xff, i & 0x7fffff)
++ s, e, m = (fs, 0, 0)
++
++ if (fe == 0x0):
++  pass
++ if ((fe == 0xff) and (fm == 0x0)):
++  e = 31
++ elif (fe == 0xff):
++  m = 1
++  e = 31
++ else:
++  exp = fe - 127;
++  if (exp < -24):
++   pass
++  elif (exp < -14):
++   temp = 10 - (-14 - exp)
++   m = 2**temp + (m >> (23 - temp))
++  elif (exp > 15):
++   e = 31
++  else:
++   e = exp + 15
++   m = fm >> 13
++
++ return ((s << 15) | (e << 10) | m)
++
++def texgen(pix):
++
++ tex = []
++
++ for i in range(0,pix,4):
++
++  a = i / float(pix)
++  a2 = a ** 2
++  a3 = a ** 3
++
++  w0 = 1 / 6.0 * (-a3 + 3 * a2 + -3 * a + 1)
++  w1 = 1 / 6.0 * (3 * a3 + -6 * a2 + 4)
++  w2 = 1 / 6.0 * (-3 * a3 + 3 * a2 + 3 * a + 1)
++  w3 = 1 / 6.0 * a3
++
++  tex.append(-(1 - (w1 / (w0 + w1)) + a))
++  tex.append(1 + (w3 / (w2 + w3)) - a)
++  tex.append(w0 + w1)
++  tex.append(w2 + w3)
++
++ return tex
++
++def printrow(l, offset):
++
++ seq = [ struct.unpack('<I',struct.pack('f',i))[0] for i in l[offset:offset+4] ]
++ seq = [ hex(half(i)) for i in seq ]
++ return "\t" + ", ".join(seq) + ","
++
++def maketable(pix):
++
++ l = texgen(pix)
++
++ print "static const uint16_t bicubic_tex_" + str(pix) + "[] = {"
++
++ for i in range(0, pix, 4):
++
++  print printrow(l, i)
++
++ print "\t0 };\n"
++
++maketable(512)
++maketable(2048)
+diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c
+index 3df61a7..75ab6c8 100644
+--- a/src/legacy_crtc.c
++++ b/src/legacy_crtc.c
+@@ -48,8 +48,7 @@
+ 
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+-#include "radeon_dri.h"
+-#include "radeon_sarea.h"
++#include "radeon_drm.h"
+ #include "sarea.h"
+ #ifdef DRM_IOCTL_MODESET_CTL
+ #include <sys/ioctl.h>
+@@ -624,11 +623,17 @@ radeon_crtc_modeset_ioctl(xf86CrtcPtr crtc, Bool post)
+     RADEONInfoPtr info = RADEONPTR(crtc->scrn);
+     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+     struct drm_modeset_ctl modeset;
++    unsigned char *RADEONMMIO = info->MMIO;
++
++    if (!info->directRenderingEnabled)
++	return;
+ 
+     modeset.crtc = radeon_crtc->crtc_id;
+     modeset.cmd = post ? _DRM_POST_MODESET : _DRM_PRE_MODESET;
+ 
+-    ioctl(info->drmFD, DRM_IOCTL_MODESET_CTL, &modeset);
++    ioctl(info->dri->drmFD, DRM_IOCTL_MODESET_CTL, &modeset);
++
++    info->ModeReg->gen_int_cntl = INREG( RADEON_GEN_INT_CNTL );
+ #endif
+ }
+ 
+@@ -752,13 +757,13 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save,
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+     int    Base;
+ #ifdef XF86DRI
+-    RADEONSAREAPrivPtr pSAREAPriv;
++    drm_radeon_sarea_t *pSAREAPriv;
+     XF86DRISAREAPtr pSAREA;
+ #endif
+ 
+     save->crtc_offset      = pScrn->fbOffset;
+ #ifdef XF86DRI
+-    if (info->allowPageFlip)
++    if (info->dri && info->dri->allowPageFlip)
+ 	save->crtc_offset_cntl = RADEON_CRTC_OFFSET_FLIP_CNTL;
+     else
+ #endif
+@@ -851,7 +856,7 @@ RADEONInitCrtcBase(xf86CrtcPtr crtc, RADEONSavePtr save,
+ 	pSAREA->frame.height = pScrn->frameY1 - y + 1;
+ 
+ 	if (pSAREAPriv->pfCurrentPage == 1) {
+-	    Base += info->backOffset - info->frontOffset;
++	    Base += info->dri->backOffset - info->dri->frontOffset;
+ 	}
+     }
+ #endif
+@@ -970,7 +975,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save,
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+     int    Base;
+ #ifdef XF86DRI
+-    RADEONSAREAPrivPtr pSAREAPriv;
++    drm_radeon_sarea_t *pSAREAPriv;
+     XF86DRISAREAPtr pSAREA;
+ #endif
+ 
+@@ -978,7 +983,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save,
+      */
+     save->crtc2_offset      = pScrn->fbOffset;
+ #ifdef XF86DRI
+-    if (info->allowPageFlip)
++    if (info->dri && info->dri->allowPageFlip)
+ 	save->crtc2_offset_cntl = RADEON_CRTC_OFFSET_FLIP_CNTL;
+     else
+ #endif
+@@ -1065,7 +1070,7 @@ RADEONInitCrtc2Base(xf86CrtcPtr crtc, RADEONSavePtr save,
+ 	pSAREAPriv->crtc2_base = Base;
+ 
+ 	if (pSAREAPriv->pfCurrentPage == 1) {
+-	    Base += info->backOffset - info->frontOffset;
++	    Base += info->dri->backOffset - info->dri->frontOffset;
+ 	}
+     }
+ #endif
+@@ -1327,9 +1332,12 @@ radeon_update_tv_routing(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+ }
+ 
+ /* Calculate display buffer watermark to prevent buffer underflow */
+-static void
+-RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2, DisplayModePtr mode1, DisplayModePtr mode2)
++void
++RADEONInitDispBandwidthLegacy(ScrnInfoPtr pScrn,
++			      DisplayModePtr mode1, int pixel_bytes1,
++			      DisplayModePtr mode2, int pixel_bytes2)
+ {
++    RADEONInfoPtr info = RADEONPTR(pScrn);
+     RADEONEntPtr pRADEONEnt   = RADEONEntPriv(pScrn);
+     unsigned char *RADEONMMIO = info->MMIO;
+ 
+@@ -1352,10 +1360,10 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+     float min_mem_eff = 0.8;
+     float sclk_eff, sclk_delay;
+     float mc_latency_mclk, mc_latency_sclk, cur_latency_mclk, cur_latency_sclk;
+-    float disp_latency, disp_latency_overhead, disp_drain_rate, disp_drain_rate2;
++    float disp_latency, disp_latency_overhead, disp_drain_rate = 0, disp_drain_rate2;
+     float pix_clk, pix_clk2; /* in MHz */
+     int cur_size = 16;       /* in octawords */
+-    int critical_point, critical_point2;
++    int critical_point = 0, critical_point2;
+     int stop_req, max_stop_req;
+     float read_return_rate, time_disp1_drop_priority;
+ 
+@@ -1366,15 +1374,15 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+      */
+     if ((info->DispPriority == 2) && IS_R300_VARIANT) {
+ 	uint32_t mc_init_misc_lat_timer = INREG(R300_MC_INIT_MISC_LAT_TIMER);
+-	if (pRADEONEnt->pCrtc[1]->enabled) {
+-	    mc_init_misc_lat_timer |= 0x1100; /* display 0 and 1 */
+-	} else {
+-	    mc_init_misc_lat_timer |= 0x0100; /* display 0 only */
+-	}
++	mc_init_misc_lat_timer &= ~(R300_MC_DISP1R_INIT_LAT_MASK << R300_MC_DISP1R_INIT_LAT_SHIFT);
++	mc_init_misc_lat_timer &= ~(R300_MC_DISP0R_INIT_LAT_MASK << R300_MC_DISP0R_INIT_LAT_SHIFT);
++	if (pRADEONEnt->pCrtc[1]->enabled)
++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP1R_INIT_LAT_SHIFT); /* display 1 */
++	if (pRADEONEnt->pCrtc[0]->enabled)
++	    mc_init_misc_lat_timer |= (1 << R300_MC_DISP0R_INIT_LAT_SHIFT); /* display 0 */
+ 	OUTREG(R300_MC_INIT_MISC_LAT_TIMER, mc_init_misc_lat_timer);
+     }
+ 
+-
+     /* R420 and RV410 family not supported yet */
+     if (info->ChipFamily == CHIP_FAMILY_R420 || info->ChipFamily == CHIP_FAMILY_RV410) return; 
+ 
+@@ -1383,15 +1391,17 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+      */
+     mem_bw = info->mclk * (info->RamWidth / 8) * (info->IsDDR ? 2 : 1);
+ 
+-    pix_clk = mode1->Clock/1000.0;
+-    if (mode2)
++    pix_clk = 0;
++    pix_clk2 = 0;
++    peak_disp_bw = 0;
++    if (mode1) {
++	pix_clk = mode1->Clock/1000.0;
++	peak_disp_bw += (pix_clk * pixel_bytes1);
++    }
++    if (mode2) {
+ 	pix_clk2 = mode2->Clock/1000.0;
+-    else
+-	pix_clk2 = 0;
+-
+-    peak_disp_bw = (pix_clk * info->CurrentLayout.pixel_bytes);
+-    if (pixel_bytes2)
+-      peak_disp_bw += (pix_clk2 * pixel_bytes2);
++	peak_disp_bw += (pix_clk2 * pixel_bytes2);
++    }
+ 
+     if (peak_disp_bw >= mem_bw * min_mem_eff) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+@@ -1399,20 +1409,6 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+ 		   "If you have flickering problem, try to lower resolution, refresh rate, or color depth\n");
+     }
+ 
+-    /*  CRTC1
+-        Set GRPH_BUFFER_CNTL register using h/w defined optimal values.
+-	GRPH_STOP_REQ <= MIN[ 0x7C, (CRTC_H_DISP + 1) * (bit depth) / 0x10 ]
+-    */
+-    stop_req = mode1->HDisplay * info->CurrentLayout.pixel_bytes / 16;
+-
+-    /* setup Max GRPH_STOP_REQ default value */
+-    if (IS_RV100_VARIANT)
+-	max_stop_req = 0x5c;
+-    else
+-	max_stop_req  = 0x7c;
+-    if (stop_req > max_stop_req)
+-	stop_req = max_stop_req;
+-
+     /*  Get values from the EXT_MEM_CNTL register...converting its contents. */
+     temp = INREG(RADEON_MEM_TIMING_CNTL);
+     if ((info->ChipFamily == CHIP_FAMILY_RV100) || info->IsIGP) { /* RV100, M6, IGPs */
+@@ -1435,9 +1431,8 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+     }
+ 
+     if (IS_R300_VARIANT) {
+-
+ 	/* on the R300, Tcas is included in Trbs.
+-	*/
++	 */
+ 	temp = INREG(RADEON_MEM_CNTL);
+ 	data = (R300_MEM_NUM_CHANNELS_MASK & temp);
+ 	if (data == 1) {
+@@ -1467,13 +1462,14 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+     } else {
+ #ifdef XF86DRI
+ 	if (info->directRenderingEnabled)
+-	    sclk_eff = info->sclk - (info->agpMode * 50.0 / 3.0);
++	    sclk_eff = info->sclk - (info->dri->agpMode * 50.0 / 3.0);
+ 	else
+ #endif
+ 	    sclk_eff = info->sclk;
+     }
+ 
+-    /* Find the memory controller latency for the display client.
++    /*
++      Find the memory controller latency for the display client.
+     */
+     if (IS_R300_VARIANT) {
+ 	/*not enough for R350 ???*/
+@@ -1527,89 +1523,107 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+     mc_latency_sclk = mc_latency_sclk + disp_latency_overhead + cur_latency_sclk;
+     disp_latency = MAX(mc_latency_mclk, mc_latency_sclk);
+ 
+-    /*
+-      Find the drain rate of the display buffer.
+-    */
+-    disp_drain_rate = pix_clk / (16.0/info->CurrentLayout.pixel_bytes);
+-    if (pixel_bytes2)
+-	disp_drain_rate2 = pix_clk2 / (16.0/pixel_bytes2);
++    /* setup Max GRPH_STOP_REQ default value */
++    if (IS_RV100_VARIANT)
++	max_stop_req = 0x5c;
+     else
+-	disp_drain_rate2 = 0;
++	max_stop_req  = 0x7c;
+ 
+-    /*
+-      Find the critical point of the display buffer.
+-    */
+-    critical_point= (uint32_t)(disp_drain_rate * disp_latency + 0.5);
++    if (mode1) {
++	/*  CRTC1
++	    Set GRPH_BUFFER_CNTL register using h/w defined optimal values.
++	    GRPH_STOP_REQ <= MIN[ 0x7C, (CRTC_H_DISP + 1) * (bit depth) / 0x10 ]
++	*/
++	stop_req = mode1->HDisplay * pixel_bytes1 / 16;
+ 
+-    /* ???? */
+-    /*
+-    temp = (info->SavedReg.grph_buffer_cntl & RADEON_GRPH_CRITICAL_POINT_MASK) >> RADEON_GRPH_CRITICAL_POINT_SHIFT;
+-    if (critical_point < temp) critical_point = temp;
+-    */
+-    if (info->DispPriority == 2) {
+-	critical_point = 0;
+-    }
++	if (stop_req > max_stop_req)
++	    stop_req = max_stop_req;
+ 
+-    /*
+-      The critical point should never be above max_stop_req-4.  Setting
+-      GRPH_CRITICAL_CNTL = 0 will thus force high priority all the time.
+-    */
+-    if (max_stop_req - critical_point < 4) critical_point = 0;
++	/*
++	  Find the drain rate of the display buffer.
++	*/
++	disp_drain_rate = pix_clk / (16.0/pixel_bytes1);
+ 
+-    if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) {
+-	/* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
+-	critical_point = 0x10;
+-    }
++	/*
++	  Find the critical point of the display buffer.
++	*/
++	critical_point= (uint32_t)(disp_drain_rate * disp_latency + 0.5);
+ 
+-    temp = info->SavedReg->grph_buffer_cntl;
+-    temp &= ~(RADEON_GRPH_STOP_REQ_MASK);
+-    temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT);
+-    temp &= ~(RADEON_GRPH_START_REQ_MASK);
+-    if ((info->ChipFamily == CHIP_FAMILY_R350) &&
+-	(stop_req > 0x15)) {
+-	stop_req -= 0x10;
+-    }
+-    temp |= (stop_req << RADEON_GRPH_START_REQ_SHIFT);
++	/* ???? */
++	/*
++	  temp = (info->SavedReg.grph_buffer_cntl & RADEON_GRPH_CRITICAL_POINT_MASK) >> RADEON_GRPH_CRITICAL_POINT_SHIFT;
++	  if (critical_point < temp) critical_point = temp;
++	*/
++	if (info->DispPriority == 2) {
++	    critical_point = 0;
++	}
+ 
+-    temp |= RADEON_GRPH_BUFFER_SIZE;
+-    temp &= ~(RADEON_GRPH_CRITICAL_CNTL   |
+-	      RADEON_GRPH_CRITICAL_AT_SOF |
+-	      RADEON_GRPH_STOP_CNTL);
+-    /*
+-      Write the result into the register.
+-    */
+-    OUTREG(RADEON_GRPH_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) |
+-				     (critical_point << RADEON_GRPH_CRITICAL_POINT_SHIFT)));
++	/*
++	  The critical point should never be above max_stop_req-4.  Setting
++	  GRPH_CRITICAL_CNTL = 0 will thus force high priority all the time.
++	*/
++	if (max_stop_req - critical_point < 4) critical_point = 0;
++
++	if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) {
++	    /* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
++	    critical_point = 0x10;
++	}
++
++	temp = info->SavedReg->grph_buffer_cntl;
++	temp &= ~(RADEON_GRPH_STOP_REQ_MASK);
++	temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT);
++	temp &= ~(RADEON_GRPH_START_REQ_MASK);
++	if ((info->ChipFamily == CHIP_FAMILY_R350) &&
++	    (stop_req > 0x15)) {
++	    stop_req -= 0x10;
++	}
++	temp |= (stop_req << RADEON_GRPH_START_REQ_SHIFT);
++
++	temp |= RADEON_GRPH_BUFFER_SIZE;
++	temp &= ~(RADEON_GRPH_CRITICAL_CNTL   |
++		  RADEON_GRPH_CRITICAL_AT_SOF |
++		  RADEON_GRPH_STOP_CNTL);
++	/*
++	  Write the result into the register.
++	*/
++	OUTREG(RADEON_GRPH_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) |
++					 (critical_point << RADEON_GRPH_CRITICAL_POINT_SHIFT)));
+ 
+ #if 0
+-    if ((info->ChipFamily == CHIP_FAMILY_RS400) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS480)) {
+-	/* attempt to program RS400 disp regs correctly ??? */
+-	temp = info->SavedReg->disp1_req_cntl1;
+-	temp &= ~(RS400_DISP1_START_REQ_LEVEL_MASK |
+-		  RS400_DISP1_STOP_REQ_LEVEL_MASK);
+-	OUTREG(RS400_DISP1_REQ_CNTL1, (temp |
+-				       (critical_point << RS400_DISP1_START_REQ_LEVEL_SHIFT) |
+-				       (critical_point << RS400_DISP1_STOP_REQ_LEVEL_SHIFT)));
+-	temp = info->SavedReg->dmif_mem_cntl1;
+-	temp &= ~(RS400_DISP1_CRITICAL_POINT_START_MASK |
+-		  RS400_DISP1_CRITICAL_POINT_STOP_MASK);
+-	OUTREG(RS400_DMIF_MEM_CNTL1, (temp |
+-				      (critical_point << RS400_DISP1_CRITICAL_POINT_START_SHIFT) |
+-				      (critical_point << RS400_DISP1_CRITICAL_POINT_STOP_SHIFT)));
+-    }
++	if ((info->ChipFamily == CHIP_FAMILY_RS400) ||
++	    (info->ChipFamily == CHIP_FAMILY_RS480)) {
++	    /* attempt to program RS400 disp regs correctly ??? */
++	    temp = info->SavedReg->disp1_req_cntl1;
++	    temp &= ~(RS400_DISP1_START_REQ_LEVEL_MASK |
++		      RS400_DISP1_STOP_REQ_LEVEL_MASK);
++	    OUTREG(RS400_DISP1_REQ_CNTL1, (temp |
++					   (critical_point << RS400_DISP1_START_REQ_LEVEL_SHIFT) |
++					   (critical_point << RS400_DISP1_STOP_REQ_LEVEL_SHIFT)));
++	    temp = info->SavedReg->dmif_mem_cntl1;
++	    temp &= ~(RS400_DISP1_CRITICAL_POINT_START_MASK |
++		      RS400_DISP1_CRITICAL_POINT_STOP_MASK);
++	    OUTREG(RS400_DMIF_MEM_CNTL1, (temp |
++					  (critical_point << RS400_DISP1_CRITICAL_POINT_START_SHIFT) |
++					  (critical_point << RS400_DISP1_CRITICAL_POINT_STOP_SHIFT)));
++	}
+ #endif
+ 
+-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+-		   "GRPH_BUFFER_CNTL from %x to %x\n",
+-		   (unsigned int)info->SavedReg->grph_buffer_cntl,
+-		   (unsigned int)INREG(RADEON_GRPH_BUFFER_CNTL));
++	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
++		       "GRPH_BUFFER_CNTL from %x to %x\n",
++		       (unsigned int)info->SavedReg->grph_buffer_cntl,
++		       (unsigned int)INREG(RADEON_GRPH_BUFFER_CNTL));
++    }
+ 
+     if (mode2) {
+ 	stop_req = mode2->HDisplay * pixel_bytes2 / 16;
+ 
+ 	if (stop_req > max_stop_req) stop_req = max_stop_req;
+ 
++	/*
++	  Find the drain rate of the display buffer.
++	*/
++	disp_drain_rate2 = pix_clk2 / (16.0/pixel_bytes2);
++
+ 	temp = info->SavedReg->grph2_buffer_cntl;
+ 	temp &= ~(RADEON_GRPH_STOP_REQ_MASK);
+ 	temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT);
+@@ -1629,7 +1643,10 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+ 	    critical_point2 = 0;
+ 	else {
+ 	    read_return_rate = MIN(info->sclk, info->mclk*(info->RamWidth*(info->IsDDR+1)/128));
+-	    time_disp1_drop_priority = critical_point / (read_return_rate - disp_drain_rate);
++	    if (mode1)
++		time_disp1_drop_priority = critical_point / (read_return_rate - disp_drain_rate);
++	    else
++		time_disp1_drop_priority = 0;
+ 
+ 	    critical_point2 = (uint32_t)((disp_latency + time_disp1_drop_priority + 
+ 					disp_latency) * disp_drain_rate2 + 0.5);
+@@ -1681,45 +1698,6 @@ RADEONInitDispBandwidth2(ScrnInfoPtr pScrn, RADEONInfoPtr info, int pixel_bytes2
+ }
+ 
+ void
+-RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
+-{
+-    RADEONInfoPtr info = RADEONPTR(pScrn);
+-    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+-    DisplayModePtr mode1, mode2;
+-    int pixel_bytes2 = 0;
+-
+-    if (info->IsPrimary || info->IsSecondary)
+-	mode1 = &xf86_config->crtc[0]->mode;
+-    else
+-	mode1 = info->CurrentLayout.mode;
+-    mode2 = NULL;
+-    pixel_bytes2 = info->CurrentLayout.pixel_bytes;
+-
+-    if (xf86_config->num_crtc == 2) {
+-      pixel_bytes2 = 0;
+-      mode2 = NULL;
+-
+-      if (xf86_config->crtc[1]->enabled && xf86_config->crtc[0]->enabled) {
+-	pixel_bytes2 = info->CurrentLayout.pixel_bytes;
+-	mode1 = &xf86_config->crtc[0]->mode;
+-	mode2 = &xf86_config->crtc[1]->mode;
+-      } else if (xf86_config->crtc[0]->enabled) {
+-	mode1 = &xf86_config->crtc[0]->mode;
+-      } else if (xf86_config->crtc[1]->enabled) {
+-	mode1 = &xf86_config->crtc[1]->mode;
+-      } else
+-	return;
+-    } else {
+-	if (xf86_config->crtc[0]->enabled)
+-	    mode1 = &xf86_config->crtc[0]->mode;
+-	else
+-	    return;
+-    }
+-
+-    RADEONInitDispBandwidth2(pScrn, info, pixel_bytes2, mode1, mode2);
+-}
+-
+-void
+ legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+ 		     DisplayModePtr adjusted_mode, int x, int y)
+ {
+@@ -1729,10 +1707,15 @@ legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+     RADEONInfoPtr info = RADEONPTR(pScrn);
+     int i = 0;
+     double dot_clock = 0;
+-    int pll_flags = RADEON_PLL_LEGACY | RADEON_PLL_PREFER_LOW_REF_DIV;
++    int pll_flags = RADEON_PLL_LEGACY;
+     Bool update_tv_routing = FALSE;
+     Bool tilingChanged = FALSE;
+ 
++    if (adjusted_mode->Clock > 200000) /* range limits??? */
++	pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
++    else
++	pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
++
+     if (info->allowColorTiling) {
+ 	radeon_crtc->can_tile = (adjusted_mode->Flags & (V_DBLSCAN | V_INTERLACE)) ? FALSE : TRUE;
+ 	tilingChanged = RADEONSetTiling(pScrn);
+diff --git a/src/legacy_output.c b/src/legacy_output.c
+index 9c9ebb9..e5ddf1f 100644
+--- a/src/legacy_output.c
++++ b/src/legacy_output.c
+@@ -48,6 +48,8 @@
+ #include "radeon_tv.h"
+ #include "radeon_atombios.h"
+ 
++#include "ati_pciids_gen.h"
++
+ static RADEONMonitorType radeon_detect_tv(ScrnInfoPtr pScrn);
+ static RADEONMonitorType radeon_detect_primary_dac(ScrnInfoPtr pScrn, Bool color);
+ static RADEONMonitorType radeon_detect_tv_dac(ScrnInfoPtr pScrn, Bool color);
+@@ -277,16 +279,12 @@ static void
+ RADEONRestoreDVOChip(ScrnInfoPtr pScrn, xf86OutputPtr output)
+ {
+     RADEONInfoPtr info = RADEONPTR(pScrn);
+-    unsigned char *RADEONMMIO = info->MMIO;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+ 
+     if (!radeon_output->DVOChip)
+ 	return;
+ 
+-    OUTREG(radeon_output->dvo_i2c.mask_clk_reg,
+-	   INREG(radeon_output->dvo_i2c.mask_clk_reg) &
+-	   (uint32_t)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1));
+-
++    RADEONI2CDoLock(output, TRUE);
+     if (!RADEONInitExtTMDSInfoFromBIOS(output)) {
+ 	if (radeon_output->DVOChip) {
+ 	    switch(info->ext_tmds_chip) {
+@@ -316,6 +314,7 @@ RADEONRestoreDVOChip(ScrnInfoPtr pScrn, xf86OutputPtr output)
+ 	    }
+ 	}
+     }
++    RADEONI2CDoLock(output, FALSE);
+ }
+ 
+ #if 0
+@@ -727,14 +726,6 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable)
+ 		    save->crtc2_gen_cntl |= RADEON_CRTC2_CRT2_ON;
+ 		}
+ 		tv_dac_change = 1;
+-		/* IGP chips seem to use a mix of Primary and TVDAC controls */
+-		if (info->IsIGP) {
+-		    tmp = INREG(RADEON_CRTC_EXT_CNTL);
+-		    tmp |= RADEON_CRTC_CRT_ON;
+-		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp);
+-		    save->crtc_ext_cntl |= RADEON_CRTC_CRT_ON;
+-		    RADEONDacPowerSet(pScrn, bEnable, TRUE);
+-		}
+ 	    }
+ 	} else if (radeon_output->MonType == MT_DFP) {
+ 	    if (radeon_output->TMDSType == TMDS_INT) {
+@@ -815,14 +806,6 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable)
+ 			save->crtc2_gen_cntl &= ~RADEON_CRTC2_CRT2_ON;
+ 		    }
+ 		}
+-		/* IGP chips seem to use a mix of Primary and TVDAC controls */
+-		if (info->IsIGP) {
+-		    tmp = INREG(RADEON_CRTC_EXT_CNTL);
+-		    tmp &= ~RADEON_CRTC_CRT_ON;
+-		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp);
+-		    save->crtc_ext_cntl &= ~RADEON_CRTC_CRT_ON;
+-		    RADEONDacPowerSet(pScrn, bEnable, TRUE);
+-		}
+ 	    }
+ 	} else if (radeon_output->MonType == MT_DFP) {
+ 	    if (radeon_output->TMDSType == TMDS_INT) {
+@@ -1033,9 +1016,14 @@ RADEONInitFP2Registers(xf86OutputPtr output, RADEONSavePtr save,
+ 			    RADEON_FP2_DVO_RATE_SEL_SDR);
+ 
+ 
+-    /* XXX: these may be oem specific */
++    /* XXX: these are oem specific */
+     if (IS_R300_VARIANT) {
+-	save->fp2_gen_cntl |= RADEON_FP2_PAD_FLOP_EN | R300_FP2_DVO_CLOCK_MODE_SINGLE;
++	if ((info->Chipset == PCI_CHIP_RV350_NP) &&
++	    (PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1028) &&
++	    (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x2001))
++	    save->fp2_gen_cntl |= R300_FP2_DVO_CLOCK_MODE_SINGLE; /* Dell Inspiron 8600 */
++	else
++	    save->fp2_gen_cntl |= RADEON_FP2_PAD_FLOP_EN | R300_FP2_DVO_CLOCK_MODE_SINGLE;
+ #if 0
+ 	if (mode->Clock > 165000)
+ 	    save->fp2_gen_cntl |= R300_FP2_DVO_DUAL_CHANNEL_EN;
+@@ -1383,7 +1371,6 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save,
+ {
+     Bool IsPrimary = crtc_num == 0 ? TRUE : FALSE;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+-    RADEONInfoPtr info = RADEONPTR(pScrn);
+ 
+     if (crtc_num == 0)
+ 	RADEONInitRMXRegisters(output, save, mode);
+@@ -1393,9 +1380,6 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save,
+ 	    RADEONInitDACRegisters(output, save, mode, IsPrimary);
+ 	} else {
+ 	    RADEONInitDAC2Registers(output, save, mode, IsPrimary);
+-	    /* IGP chips seem to use a mix of primary and TVDAC controls */
+-	    if (info->IsIGP)
+-		RADEONInitDACRegisters(output, save, mode, IsPrimary);
+ 	}
+     } else if (radeon_output->MonType == MT_LCD) {
+ 	RADEONInitLVDSRegisters(output, save, mode, IsPrimary);
+@@ -1456,8 +1440,8 @@ legacy_output_mode_set(xf86OutputPtr output, DisplayModePtr mode,
+ 		}
+ 		OUTREG(RADEON_FP2_GEN_CNTL, fp2_gen_cntl);
+ 	    } else {
+-		RADEONRestoreDVOChip(pScrn, output);
+ 		RADEONRestoreFP2Registers(pScrn, info->ModeReg);
++		RADEONRestoreDVOChip(pScrn, output);
+ 	    }
+ 	}
+ 	break;
+diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
+index 1f6fa82..07e71a3 100644
+--- a/src/pcidb/ati_pciids.csv
++++ b/src/pcidb/ati_pciids.csv
+@@ -1,5 +1,6 @@
+ "#pciid","define","family","mobility","igp","nocrtc2","Nointtvout","singledac","name"
+ "0x3150","RV380_3150","RV380",1,,,,,"ATI Radeon Mobility X600 (M24) 3150 (PCIE)"
++"0x3151","RV380_3151","RV380",,,,,,"ATI FireMV 2400 (PCI)"
+ "0x3152","RV380_3152","RV380",1,,,,,"ATI Radeon Mobility X300 (M24) 3152 (PCIE)"
+ "0x3154","RV380_3154","RV380",1,,,,,"ATI FireGL M24 GL 3154 (PCIE)"
+ "0x3E50","RV380_3E50","RV380",,,,,,"ATI Radeon X600 (RV380) 3E50 (PCIE)"
+@@ -331,6 +332,9 @@
+ "0x940A","R600_940A","R600",,,,,,"ATI FireGL V8650"
+ "0x940B","R600_940B","R600",,,,,,"ATI FireGL V8600"
+ "0x940F","R600_940F","R600",,,,,,"ATI FireGL V7600"
++"0x9440","RV770_9440","RV770",,,,,,"ATI Radeon 4800 Series"
++"0x9441","RV770_9441","RV770",,,,,,"ATI Radeon HD 4870 x2"
++"0x9442","RV770_9442","RV770",,,,,,"ATI Radeon 4800 Series"
+ "0x94C0","RV610_94C0","RV610",,,,,,"ATI RV610"
+ "0x94C1","RV610_94C1","RV610",,,,,,"ATI Radeon HD 2400 XT"
+ "0x94C3","RV610_94C3","RV610",,,,,,"ATI Radeon HD 2400 Pro"
+@@ -348,6 +352,7 @@
+ "0x9507","RV670_9507","RV670",,,,,,"ATI RV670"
+ "0x950F","RV670_950F","RV670",,,,,,"ATI Radeon HD3870 X2"
+ "0x9511","RV670_9511","RV670",,,,,,"ATI FireGL V7700"
++"0x9515","RV670_9515","RV670",,,,,,"ATI Radeon HD3850"
+ "0x9580","RV630_9580","RV630",,,,,,"ATI RV630"
+ "0x9581","RV630_9581","RV630",1,,,,,"ATI Mobility Radeon HD 2600"
+ "0x9583","RV630_9583","RV630",1,,,,,"ATI Mobility Radeon HD 2600 XT"
+diff --git a/src/radeon.h b/src/radeon.h
+index 4f77c3b..f7ae1a8 100644
+--- a/src/radeon.h
++++ b/src/radeon.h
+@@ -72,9 +72,10 @@
+ 				/* DRI support */
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+-#include "radeon_dripriv.h"
+ #include "dri.h"
+ #include "GL/glxint.h"
++#include "xf86drm.h"
++
+ #ifdef DAMAGE
+ #include "damage.h"
+ #include "globals.h"
+@@ -98,6 +99,36 @@
+ #define MIN(a,b) ((a)>(b)?(b):(a))
+ #endif
+ 
++#if HAVE_BYTESWAP_H
++#include <byteswap.h>
++#elif defined(USE_SYS_ENDIAN_H)
++#include <sys/endian.h>
++#else
++#define bswap_16(value)  \
++        ((((value) & 0xff) << 8) | ((value) >> 8))
++
++#define bswap_32(value) \
++        (((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \
++        (uint32_t)bswap_16((uint16_t)((value) >> 16)))
++ 
++#define bswap_64(value) \
++        (((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \
++            << 32) | \
++        (uint64_t)bswap_32((uint32_t)((value) >> 32)))
++#endif
++
++#if X_BYTE_ORDER == X_BIG_ENDIAN
++#define le32_to_cpu(x) bswap_32(x)
++#define le16_to_cpu(x) bswap_16(x)
++#define cpu_to_le32(x) bswap_32(x)
++#define cpu_to_le16(x) bswap_16(x)
++#else
++#define le32_to_cpu(x) (x)
++#define le16_to_cpu(x) (x)
++#define cpu_to_le32(x) (x)
++#define cpu_to_le16(x) (x)
++#endif
++
+ /* Provide substitutes for gcc's __FUNCTION__ on other compilers */
+ #if !defined(__GNUC__) && !defined(__FUNCTION__)
+ # define __FUNCTION__ __func__		/* C99 */
+@@ -220,7 +251,12 @@ typedef struct {
+ #define RADEON_PLL_NO_ODD_POST_DIV (1 << 1)
+ #define RADEON_PLL_USE_REF_DIV     (1 << 2)
+ #define RADEON_PLL_LEGACY          (1 << 3)
+-#define RADEON_PLL_PREFER_LOW_REF_DIV (1 << 4)
++#define RADEON_PLL_PREFER_LOW_REF_DIV   (1 << 4)
++#define RADEON_PLL_PREFER_HIGH_REF_DIV  (1 << 5)
++#define RADEON_PLL_PREFER_LOW_FB_DIV    (1 << 6)
++#define RADEON_PLL_PREFER_HIGH_FB_DIV   (1 << 7)
++#define RADEON_PLL_PREFER_LOW_POST_DIV  (1 << 8)
++#define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9)
+ 
+ typedef struct {
+     uint16_t          reference_freq;
+@@ -287,6 +323,7 @@ typedef enum {
+     CHIP_FAMILY_RV620,
+     CHIP_FAMILY_RV635,
+     CHIP_FAMILY_RS780,
++    CHIP_FAMILY_RV770,
+     CHIP_FAMILY_LAST
+ } RADEONChipFamily;
+ 
+@@ -377,156 +414,45 @@ typedef struct {
+     int singledac;
+ } RADEONCardInfo;
+ 
+-typedef struct {
+-    EntityInfoPtr     pEnt;
+-    pciVideoPtr       PciInfo;
+-    PCITAG            PciTag;
+-    int               Chipset;
+-    RADEONChipFamily  ChipFamily;
+-    RADEONErrata      ChipErrata;
+-
+-    unsigned long     LinearAddr;       /* Frame buffer physical address     */
+-    unsigned long     MMIOAddr;         /* MMIO region physical address      */
+-    unsigned long     BIOSAddr;         /* BIOS physical address             */
+-    uint32_t          fbLocation;
+-    uint32_t          gartLocation;
+-    uint32_t          mc_fb_location;
+-    uint32_t          mc_agp_location;
+-    uint32_t          mc_agp_location_hi;
+-
+-    void              *MMIO;            /* Map of MMIO region                */
+-    void              *FB;              /* Map of frame buffer               */
+-    uint8_t           *VBIOS;           /* Video BIOS pointer                */
+-
+-    Bool              IsAtomBios;       /* New BIOS used in R420 etc.        */
+-    int               ROMHeaderStart;   /* Start of the ROM Info Table       */
+-    int               MasterDataStart;  /* Offset for Master Data Table for ATOM BIOS */
+-
+-    uint32_t          MemCntl;
+-    uint32_t          BusCntl;
+-    unsigned long     MMIOSize;         /* MMIO region physical address      */
+-    unsigned long     FbMapSize;        /* Size of frame buffer, in bytes    */
+-    unsigned long     FbSecureSize;     /* Size of secured fb area at end of
+-                                           framebuffer */
+-
+-    Bool              IsMobility;       /* Mobile chips for laptops */
+-    Bool              IsIGP;            /* IGP chips */
+-    Bool              HasSingleDAC;     /* only TVDAC on chip */
+-    Bool              ddc_mode;         /* Validate mode by matching exactly
+-					 * the modes supported in DDC data
+-					 */
+-    Bool              R300CGWorkaround;
+-
+-				/* EDID or BIOS values for FPs */
+-    int               RefDivider;
+-    int               FeedbackDivider;
+-    int               PostDivider;
+-    Bool              UseBiosDividers;
+-				/* EDID data using DDC interface */
+-    Bool              ddc_bios;
+-    Bool              ddc1;
+-    Bool              ddc2;
+-
+-    RADEONPLLRec      pll;
+-
+-    int               RamWidth;
+-    float	      sclk;		/* in MHz */
+-    float	      mclk;		/* in MHz */
+-    Bool	      IsDDR;
+-    int               DispPriority;
+-
+-    RADEONSavePtr     SavedReg;         /* Original (text) mode              */
+-    RADEONSavePtr     ModeReg;          /* Current mode                      */
+-    Bool              (*CloseScreen)(int, ScreenPtr);
+-
+-    void              (*BlockHandler)(int, pointer, pointer, pointer);
+-
+-    Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */
+-
+-#ifdef USE_EXA
+-    ExaDriverPtr      exa;
+-    int               exaSyncMarker;
+-    int               exaMarkerSynced;
+-    int               engineMode;
+-#define EXA_ENGINEMODE_UNKNOWN 0
+-#define EXA_ENGINEMODE_2D      1
+-#define EXA_ENGINEMODE_3D      2
+ #ifdef XF86DRI
+-    Bool              accelDFS;
+-#endif
+-#endif
+-#ifdef USE_XAA
+-    XAAInfoRecPtr     accel;
+-#endif
+-    Bool              accelOn;
+-    xf86CursorInfoPtr cursor;
+-    Bool              allowColorTiling;
+-    Bool              tilingEnabled; /* mirror of sarea->tiling_enabled */
+-#ifdef ARGB_CURSOR
+-    Bool	      cursor_argb;
+-#endif
+-    int               cursor_fg;
+-    int               cursor_bg;
++struct radeon_cp {
++    Bool              CPRuns;           /* CP is running */
++    Bool              CPInUse;          /* CP has been used by X server */
++    Bool              CPStarted;        /* CP has started */
++    int               CPMode;           /* CP mode that server/clients use */
++    int               CPFifoSize;       /* Size of the CP command FIFO */
++    int               CPusecTimeout;    /* CP timeout in usecs */
++    Bool              needCacheFlush;
+ 
+-#ifdef USE_XAA
+-    /*
+-     * XAAForceTransBlit is used to change the behavior of the XAA
+-     * SetupForScreenToScreenCopy function, to make it DGA-friendly.
+-     */
+-    Bool              XAAForceTransBlit;
+-#endif
++    /* CP accleration */
++    drmBufPtr         indirectBuffer;
++    int               indirectStart;
+ 
+-    int               fifo_slots;       /* Free slots in the FIFO (64 max)   */
+-    int               pix24bpp;         /* Depth of pixmap for 24bpp fb      */
+-    Bool              dac6bits;         /* Use 6 bit DAC?                    */
++    /* Debugging info for BEGIN_RING/ADVANCE_RING pairs. */
++    int               dma_begin_count;
++    char              *dma_debug_func;
++    int               dma_debug_lineno;
+ 
+-				/* Computed values for Radeon */
+-    int               pitch;
+-    int               datatype;
+-    uint32_t          dp_gui_master_cntl;
+-    uint32_t          dp_gui_master_cntl_clip;
+-    uint32_t          trans_color;
++    };
+ 
+-				/* Saved values for ScreenToScreenCopy */
+-    int               xdir;
+-    int               ydir;
++typedef struct {
++    /* Nothing here yet */
++    int dummy;
++} RADEONConfigPrivRec, *RADEONConfigPrivPtr;
+ 
+-#ifdef USE_XAA
+-				/* ScanlineScreenToScreenColorExpand support */
+-    unsigned char     *scratch_buffer[1];
+-    unsigned char     *scratch_save;
+-    int               scanline_x;
+-    int               scanline_y;
+-    int               scanline_w;
+-    int               scanline_h;
+-    int               scanline_h_w;
+-    int               scanline_words;
+-    int               scanline_direct;
+-    int               scanline_bpp;     /* Only used for ImageWrite */
+-    int               scanline_fg;
+-    int               scanline_bg;
+-    int               scanline_hpass;
+-    int               scanline_x1clip;
+-    int               scanline_x2clip;
++typedef struct {
++#ifdef PER_CONTEXT_SAREA
++    drm_context_t ctx_id;
++    drm_handle_t sarea_handle;
++#else
++    /* Nothing here yet */
++    int dummy;
+ #endif
+-				/* Saved values for DashedTwoPointLine */
+-    int               dashLen;
+-    uint32_t          dashPattern;
+-    int               dash_fg;
+-    int               dash_bg;
++} RADEONDRIContextRec, *RADEONDRIContextPtr;
+ 
+-    DGAModePtr        DGAModes;
+-    int               numDGAModes;
+-    Bool              DGAactive;
+-    int               DGAViewportStatus;
+-    DGAFunctionRec    DGAFuncs;
++struct radeon_dri {
++    Bool              noBackBuffer;
+ 
+-    RADEONFBLayout    CurrentLayout;
+-    uint32_t          dst_pitch_offset;
+-#ifdef XF86DRI
+-    Bool              noBackBuffer;	
+-    Bool              directRenderingEnabled;
+-    Bool              directRenderingInited;
+     Bool              newMemoryMap;
+     drmVersionPtr     pLibDRMVersion;
+     drmVersionPtr     pKernelDRMVersion;
+@@ -542,7 +468,6 @@ typedef struct {
+     drmSize           registerSize;
+     drm_handle_t      registerHandle;
+ 
+-    RADEONCardType    cardType;            /* Current card is a PCI card */
+     drmSize           pciSize;
+     drm_handle_t      pciMemHandle;
+     unsigned char     *PCI;             /* Map */
+@@ -564,15 +489,7 @@ typedef struct {
+ 
+     uint32_t          pciCommand;
+ 
+-    Bool              CPRuns;           /* CP is running */
+-    Bool              CPInUse;          /* CP has been used by X server */
+-    Bool              CPStarted;        /* CP has started */
+-    int               CPMode;           /* CP mode that server/clients use */
+-    int               CPFifoSize;       /* Size of the CP command FIFO */
+-    int               CPusecTimeout;    /* CP timeout in usecs */
+-    Bool              needCacheFlush;
+-
+-				/* CP ring buffer data */
++    /* CP ring buffer data */
+     unsigned long     ringStart;        /* Offset into GART space */
+     drm_handle_t      ringHandle;       /* Handle from drmAddMap */
+     drmSize           ringMapSize;      /* Size of map */
+@@ -585,7 +502,7 @@ typedef struct {
+     drmSize           ringReadMapSize;  /* Size of map */
+     drmAddress        ringReadPtr;      /* Map */
+ 
+-				/* CP vertex/indirect buffer data */
++    /* CP vertex/indirect buffer data */
+     unsigned long     bufStart;         /* Offset into GART space */
+     drm_handle_t      bufHandle;        /* Handle from drmAddMap */
+     drmSize           bufMapSize;       /* Size of map */
+@@ -594,7 +511,7 @@ typedef struct {
+     int               bufNumBufs;       /* Number of buffers */
+     drmBufMapPtr      buffers;          /* Buffer map */
+ 
+-				/* CP GART Texture data */
++    /* CP GART Texture data */
+     unsigned long     gartTexStart;      /* Offset into GART space */
+     drm_handle_t      gartTexHandle;     /* Handle from drmAddMap */
+     drmSize           gartTexMapSize;    /* Size of map */
+@@ -602,11 +519,7 @@ typedef struct {
+     drmAddress        gartTex;           /* Map */
+     int               log2GARTTexGran;
+ 
+-				/* CP accleration */
+-    drmBufPtr         indirectBuffer;
+-    int               indirectStart;
+-
+-				/* DRI screen private data */
++    /* DRI screen private data */
+     int               fbX;
+     int               fbY;
+     int               backX;
+@@ -628,43 +541,215 @@ typedef struct {
+     int               pciGartSize;
+     uint32_t          pciGartOffset;
+     void              *pciGartBackup;
++
++    int               irq;
++
++#ifdef PER_CONTEXT_SAREA
++    int               perctx_sarea_size;
++#endif
++
+ #ifdef USE_XAA
+     uint32_t          frontPitchOffset;
+     uint32_t          backPitchOffset;
+     uint32_t          depthPitchOffset;
+ 
+-				/* offscreen memory management */
++    /* offscreen memory management */
+     int               backLines;
+     FBAreaPtr         backArea;
+     int               depthTexLines;
+     FBAreaPtr         depthTexArea;
+ #endif
+ 
+-				/* Saved scissor values */
+-    uint32_t          sc_left;
+-    uint32_t          sc_right;
+-    uint32_t          sc_top;
+-    uint32_t          sc_bottom;
++};
++#endif
++
++struct radeon_accel_state {
++    /* common accel data */
++    int               fifo_slots;       /* Free slots in the FIFO (64 max)   */
++				/* Computed values for Radeon */
++    uint32_t          dp_gui_master_cntl;
++    uint32_t          dp_gui_master_cntl_clip;
++    uint32_t          trans_color;
++				/* Saved values for ScreenToScreenCopy */
++    int               xdir;
++    int               ydir;
++    uint32_t          dst_pitch_offset;
++
++    /* render accel */
++    unsigned short    texW[2];
++    unsigned short    texH[2];
++    Bool              XInited3D; /* X itself has the 3D context */
++    int               num_gb_pipes;
++    Bool              has_tcl;
++
++#ifdef USE_EXA
++    /* EXA */
++    ExaDriverPtr      exa;
++    int               exaSyncMarker;
++    int               exaMarkerSynced;
++    int               engineMode;
++#define EXA_ENGINEMODE_UNKNOWN 0
++#define EXA_ENGINEMODE_2D      1
++#define EXA_ENGINEMODE_3D      2
++
++    Bool              is_transform[2];
++    PictTransform     *transform[2];
++    Bool              has_mask;
++    /* Whether we are tiling horizontally and vertically */
++    Bool              need_src_tile_x;
++    Bool              need_src_tile_y;
++    /* Size of tiles ... set to 65536x65536 if not tiling in that direction */
++    Bool              src_tile_width;
++    Bool              src_tile_height;
++#endif
++
++#ifdef USE_XAA
++    /* XAA */
++    XAAInfoRecPtr     accel;
++				/* ScanlineScreenToScreenColorExpand support */
++    unsigned char     *scratch_buffer[1];
++    unsigned char     *scratch_save;
++    int               scanline_x;
++    int               scanline_y;
++    int               scanline_w;
++    int               scanline_h;
++    int               scanline_h_w;
++    int               scanline_words;
++    int               scanline_direct;
++    int               scanline_bpp;     /* Only used for ImageWrite */
++    int               scanline_fg;
++    int               scanline_bg;
++    int               scanline_hpass;
++    int               scanline_x1clip;
++    int               scanline_x2clip;
++				/* Saved values for DashedTwoPointLine */
++    int               dashLen;
++    uint32_t          dashPattern;
++    int               dash_fg;
++    int               dash_bg;
++
++    FBLinearPtr       RenderTex;
++    void              (*RenderCallback)(ScrnInfoPtr);
++    Time              RenderTimeout;
++    /*
++     * XAAForceTransBlit is used to change the behavior of the XAA
++     * SetupForScreenToScreenCopy function, to make it DGA-friendly.
++     */
++    Bool              XAAForceTransBlit;
++#endif
++
++};
+ 
+-    uint32_t          re_top_left;
+-    uint32_t          re_width_height;
++typedef struct {
++    EntityInfoPtr     pEnt;
++    pciVideoPtr       PciInfo;
++    PCITAG            PciTag;
++    int               Chipset;
++    RADEONChipFamily  ChipFamily;
++    RADEONErrata      ChipErrata;
++
++    unsigned long     LinearAddr;       /* Frame buffer physical address     */
++    unsigned long     MMIOAddr;         /* MMIO region physical address      */
++    unsigned long     BIOSAddr;         /* BIOS physical address             */
++    uint32_t          fbLocation;
++    uint32_t          gartLocation;
++    uint32_t          mc_fb_location;
++    uint32_t          mc_agp_location;
++    uint32_t          mc_agp_location_hi;
+ 
+-    uint32_t          aux_sc_cntl;
++    void              *MMIO;            /* Map of MMIO region                */
++    void              *FB;              /* Map of frame buffer               */
++    uint8_t           *VBIOS;           /* Video BIOS pointer                */
+ 
+-    int               irq;
++    Bool              IsAtomBios;       /* New BIOS used in R420 etc.        */
++    int               ROMHeaderStart;   /* Start of the ROM Info Table       */
++    int               MasterDataStart;  /* Offset for Master Data Table for ATOM BIOS */
+ 
+-    Bool              DMAForXv;
++    uint32_t          MemCntl;
++    uint32_t          BusCntl;
++    unsigned long     MMIOSize;         /* MMIO region physical address      */
++    unsigned long     FbMapSize;        /* Size of frame buffer, in bytes    */
++    unsigned long     FbSecureSize;     /* Size of secured fb area at end of
++                                           framebuffer */
+ 
+-#ifdef PER_CONTEXT_SAREA
+-    int               perctx_sarea_size;
++    Bool              IsMobility;       /* Mobile chips for laptops */
++    Bool              IsIGP;            /* IGP chips */
++    Bool              HasSingleDAC;     /* only TVDAC on chip */
++    Bool              ddc_mode;         /* Validate mode by matching exactly
++					 * the modes supported in DDC data
++					 */
++    Bool              R300CGWorkaround;
++
++				/* EDID or BIOS values for FPs */
++    int               RefDivider;
++    int               FeedbackDivider;
++    int               PostDivider;
++    Bool              UseBiosDividers;
++				/* EDID data using DDC interface */
++    Bool              ddc_bios;
++    Bool              ddc1;
++    Bool              ddc2;
++
++    RADEONPLLRec      pll;
++
++    int               RamWidth;
++    float	      sclk;		/* in MHz */
++    float	      mclk;		/* in MHz */
++    Bool	      IsDDR;
++    int               DispPriority;
++
++    RADEONSavePtr     SavedReg;         /* Original (text) mode              */
++    RADEONSavePtr     ModeReg;          /* Current mode                      */
++    Bool              (*CloseScreen)(int, ScreenPtr);
++
++    void              (*BlockHandler)(int, pointer, pointer, pointer);
++
++    Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */
++
++    xf86CursorInfoPtr cursor;
++#ifdef ARGB_CURSOR
++    Bool	      cursor_argb;
+ #endif
++    int               cursor_fg;
++    int               cursor_bg;
+ 
+-    /* Debugging info for BEGIN_RING/ADVANCE_RING pairs. */
+-    int               dma_begin_count;
+-    char              *dma_debug_func;
+-    int               dma_debug_lineno;
++    int               pix24bpp;         /* Depth of pixmap for 24bpp fb      */
++    Bool              dac6bits;         /* Use 6 bit DAC?                    */
++
++    DGAModePtr        DGAModes;
++    int               numDGAModes;
++    Bool              DGAactive;
++    int               DGAViewportStatus;
++    DGAFunctionRec    DGAFuncs;
++
++    RADEONFBLayout    CurrentLayout;
++
++#ifdef XF86DRI
++    Bool              directRenderingEnabled;
++    Bool              directRenderingInited;
++    RADEONCardType    cardType;            /* Current card is a PCI card */
++    struct radeon_cp  *cp;
++    struct radeon_dri  *dri;
++#ifdef USE_EXA
++    Bool              accelDFS;
++#endif
++    Bool              DMAForXv;
+ #endif /* XF86DRI */
+ 
++    /* accel */
++    Bool              RenderAccel; /* Render */
++    Bool              allowColorTiling;
++    Bool              tilingEnabled; /* mirror of sarea->tiling_enabled */
++    struct radeon_accel_state *accel_state;
++    Bool              accelOn;
++    Bool              useEXA;
++#ifdef USE_EXA
++    XF86ModReqInfo    exaReq;
++#endif
++#ifdef USE_XAA
++    XF86ModReqInfo    xaaReq;
++#endif
++
+ 				/* XVideo */
+     XF86VideoAdaptorPtr adaptor;
+     void              (*VideoTimerCallback)(ScrnInfoPtr, Time);
+@@ -693,31 +778,10 @@ typedef struct {
+     int overlay_scaler_buffer_width;
+     int ecp_div;
+ 
+-    /* Render */
+-    Bool              RenderAccel;
+-    unsigned short    texW[2];
+-    unsigned short    texH[2];
+-#ifdef USE_XAA
+-    FBLinearPtr       RenderTex;
+-    void              (*RenderCallback)(ScrnInfoPtr);
+-    Time              RenderTimeout;
+-#endif
+-
+     /* general */
+     Bool              showCache;
+     OptionInfoPtr     Options;
+ 
+-    Bool              useEXA;
+-#ifdef USE_EXA
+-    XF86ModReqInfo    exaReq;
+-#endif
+-#ifdef USE_XAA
+-    XF86ModReqInfo    xaaReq;
+-#endif
+-
+-    /* X itself has the 3D context */
+-    Bool              XInited3D;
+-
+     DisplayModePtr currentMode, savedCurrentMode;
+ 
+     /* special handlings for DELL triple-head server */
+@@ -772,22 +836,19 @@ typedef struct {
+     Bool              r600_shadow_fb;
+     void *fb_shadow;
+ 
+-    int num_gb_pipes;
+-    Bool has_tcl;
+ } RADEONInfoRec, *RADEONInfoPtr;
+ 
+ #define RADEONWaitForFifo(pScrn, entries)				\
+ do {									\
+-    if (info->fifo_slots < entries)					\
++    if (info->accel_state->fifo_slots < entries)			\
+ 	RADEONWaitForFifoFunction(pScrn, entries);			\
+-    info->fifo_slots -= entries;					\
++    info->accel_state->fifo_slots -= entries;				\
+ } while (0)
+ 
+ /* legacy_crtc.c */
+ extern void legacy_crtc_dpms(xf86CrtcPtr crtc, int mode);
+ extern void legacy_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+ 				 DisplayModePtr adjusted_mode, int x, int y);
+-extern void RADEONInitDispBandwidth(ScrnInfoPtr pScrn);
+ extern void RADEONRestoreCommonRegisters(ScrnInfoPtr pScrn,
+ 					 RADEONSavePtr restore);
+ extern void RADEONRestoreCrtcRegisters(ScrnInfoPtr pScrn,
+@@ -872,6 +933,7 @@ extern Bool RADEONGetTMDSInfoFromBIOS(xf86OutputPtr output);
+ extern Bool RADEONGetTVInfoFromBIOS(xf86OutputPtr output);
+ extern Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output);
+ extern Bool RADEONPostCardFromBIOSTables(ScrnInfoPtr pScrn);
++extern Bool radeon_card_posted(ScrnInfoPtr pScrn);
+ 
+ /* radeon_commonfuncs.c */
+ #ifdef XF86DRI
+@@ -894,6 +956,7 @@ extern DisplayModePtr RADEONCrtcFindClosestMode(xf86CrtcPtr crtc,
+ 						DisplayModePtr pMode);
+ extern void RADEONUnblank(ScrnInfoPtr pScrn);
+ extern Bool RADEONSetTiling(ScrnInfoPtr pScrn);
++extern void RADEONInitDispBandwidth(ScrnInfoPtr pScrn);
+ 
+ /* radeon_cursor.c */
+ extern Bool RADEONCursorInit(ScreenPtr pScreen);
+@@ -983,6 +1046,8 @@ extern void RADEONPrintPortMap(ScrnInfoPtr pScrn);
+ extern void RADEONSetOutputType(ScrnInfoPtr pScrn,
+ 				RADEONOutputPrivatePtr radeon_output);
+ extern Bool RADEONSetupConnectors(ScrnInfoPtr pScrn);
++extern Bool RADEONI2CDoLock(xf86OutputPtr output, Bool lock_state);
++
+ 
+ /* radeon_tv.c */
+ extern void RADEONSaveTVRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save);
+@@ -1003,6 +1068,16 @@ extern void RADEONUpdateHVPosition(xf86OutputPtr output, DisplayModePtr mode);
+ extern void RADEONInitVideo(ScreenPtr pScreen);
+ extern void RADEONResetVideo(ScrnInfoPtr pScrn);
+ 
++/* radeon_legacy_memory.c */
++extern uint32_t
++radeon_legacy_allocate_memory(ScrnInfoPtr pScrn,
++			      void **mem_struct,
++			      int size,
++			      int align);
++extern void
++radeon_legacy_free_memory(ScrnInfoPtr pScrn,
++		          void *mem_struct);
++
+ #ifdef XF86DRI
+ #  ifdef USE_XAA
+ /* radeon_accelfuncs.c */
+@@ -1011,72 +1086,58 @@ extern void RADEONAccelInitCP(ScreenPtr pScreen, XAAInfoRecPtr a);
+ 
+ #define RADEONCP_START(pScrn, info)					\
+ do {									\
+-    int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_START);	\
++    int _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_START);	\
+     if (_ret) {								\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\
+ 		   "%s: CP start %d\n", __FUNCTION__, _ret);		\
+     }									\
+-    info->CPStarted = TRUE;                                             \
++    info->cp->CPStarted = TRUE;                                         \
+ } while (0)
+ 
+ #define RADEONCP_RELEASE(pScrn, info)					\
+ do {									\
+-    if (info->CPInUse) {						\
++    if (info->cp->CPInUse) {						\
+ 	RADEON_PURGE_CACHE();						\
+ 	RADEON_WAIT_UNTIL_IDLE();					\
+ 	RADEONCPReleaseIndirect(pScrn);					\
+-	info->CPInUse = FALSE;						\
++	info->cp->CPInUse = FALSE;				        \
+     }									\
+ } while (0)
+ 
+ #define RADEONCP_STOP(pScrn, info)					\
+ do {									\
+     int _ret;								\
+-     if (info->CPStarted) {						\
++     if (info->cp->CPStarted) {						\
+         _ret = RADEONCPStop(pScrn, info);				\
+         if (_ret) {							\
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\
+ 		   "%s: CP stop %d\n", __FUNCTION__, _ret);		\
+         }								\
+-        info->CPStarted = FALSE;                                        \
++        info->cp->CPStarted = FALSE;                                    \
+    }									\
+     RADEONEngineRestore(pScrn);						\
+-    info->CPRuns = FALSE;						\
++    info->cp->CPRuns = FALSE;						\
+ } while (0)
+ 
+ #define RADEONCP_RESET(pScrn, info)					\
+ do {									\
+-    if (RADEONCP_USE_RING_BUFFER(info->CPMode)) {			\
+-	int _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_RESET);	\
++	int _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_RESET);	\
+ 	if (_ret) {							\
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,			\
+ 		       "%s: CP reset %d\n", __FUNCTION__, _ret);	\
+ 	}								\
+-    }									\
+ } while (0)
+ 
+ #define RADEONCP_REFRESH(pScrn, info)					\
+ do {									\
+-    if (!info->CPInUse) {						\
+-	if (info->needCacheFlush) {					\
++    if (!info->cp->CPInUse) {						\
++	if (info->cp->needCacheFlush) {					\
+ 	    RADEON_PURGE_CACHE();					\
+ 	    RADEON_PURGE_ZCACHE();					\
+-	    info->needCacheFlush = FALSE;				\
++	    info->cp->needCacheFlush = FALSE;				\
+ 	}								\
+ 	RADEON_WAIT_UNTIL_IDLE();					\
+-        if (info->ChipFamily <= CHIP_FAMILY_RV280) {                    \
+-	    BEGIN_RING(6);						\
+-	    OUT_RING_REG(RADEON_RE_TOP_LEFT,     info->re_top_left);	\
+-	    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, info->re_width_height); \
+-	    OUT_RING_REG(RADEON_AUX_SC_CNTL,     info->aux_sc_cntl);	\
+-	    ADVANCE_RING();						\
+-        } else {                                                        \
+-            BEGIN_RING(4);                                              \
+-            OUT_RING_REG(R300_SC_SCISSOR0, info->re_top_left);          \
+-	    OUT_RING_REG(R300_SC_SCISSOR1, info->re_width_height);      \
+-            ADVANCE_RING();                                             \
+-	}                                                               \
+-	info->CPInUse = TRUE;						\
++	info->cp->CPInUse = TRUE;					\
+     }									\
+ } while (0)
+ 
+@@ -1100,33 +1161,33 @@ do {									\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\
+ 		   "BEGIN_RING(%d) in %s\n", (unsigned int)n, __FUNCTION__);\
+     }									\
+-    if (++info->dma_begin_count != 1) {					\
++    if (++info->cp->dma_begin_count != 1) {				\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\
+ 		   "BEGIN_RING without end at %s:%d\n",			\
+-		   info->dma_debug_func, info->dma_debug_lineno);	\
+-	info->dma_begin_count = 1;					\
++		   info->cp->dma_debug_func, info->cp->dma_debug_lineno);	\
++	info->cp->dma_begin_count = 1;					\
+     }									\
+-    info->dma_debug_func = __FILE__;					\
+-    info->dma_debug_lineno = __LINE__;					\
+-    if (!info->indirectBuffer) {					\
+-	info->indirectBuffer = RADEONCPGetBuffer(pScrn);		\
+-	info->indirectStart = 0;					\
+-    } else if (info->indirectBuffer->used + (n) * (int)sizeof(uint32_t) >	\
+-	       info->indirectBuffer->total) {				\
++    info->cp->dma_debug_func = __FILE__;				\
++    info->cp->dma_debug_lineno = __LINE__;				\
++    if (!info->cp->indirectBuffer) {					\
++	info->cp->indirectBuffer = RADEONCPGetBuffer(pScrn);		\
++	info->cp->indirectStart = 0;					\
++    } else if (info->cp->indirectBuffer->used + (n) * (int)sizeof(uint32_t) >	\
++	       info->cp->indirectBuffer->total) {		        \
+ 	RADEONCPFlushIndirect(pScrn, 1);				\
+     }									\
+     __expected = n;							\
+-    __head = (pointer)((char *)info->indirectBuffer->address +		\
+-		       info->indirectBuffer->used);			\
++    __head = (pointer)((char *)info->cp->indirectBuffer->address +	\
++		       info->cp->indirectBuffer->used);			\
+     __count = 0;							\
+ } while (0)
+ 
+ #define ADVANCE_RING() do {						\
+-    if (info->dma_begin_count-- != 1) {					\
++    if (info->cp->dma_begin_count-- != 1) {				\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\
+ 		   "ADVANCE_RING without begin at %s:%d\n",		\
+ 		   __FILE__, __LINE__);					\
+-	info->dma_begin_count = 0;					\
++	info->cp->dma_begin_count = 0;					\
+     }									\
+     if (__count != __expected) {					\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,				\
+@@ -1136,11 +1197,11 @@ do {									\
+     if (RADEON_VERBOSE) {						\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\
+ 		   "ADVANCE_RING() start: %d used: %d count: %d\n",	\
+-		   info->indirectStart,					\
+-		   info->indirectBuffer->used,				\
++		   info->cp->indirectStart,				\
++		   info->cp->indirectBuffer->used,			\
+ 		   __count * (int)sizeof(uint32_t));			\
+     }									\
+-    info->indirectBuffer->used += __count * (int)sizeof(uint32_t);	\
++    info->cp->indirectBuffer->used += __count * (int)sizeof(uint32_t);	\
+ } while (0)
+ 
+ #define OUT_RING(x) do {						\
+@@ -1162,7 +1223,7 @@ do {									\
+     if (RADEON_VERBOSE)							\
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,				\
+ 		   "FLUSH_RING in %s\n", __FUNCTION__);			\
+-    if (info->indirectBuffer) {						\
++    if (info->cp->indirectBuffer) {					\
+ 	RADEONCPFlushIndirect(pScrn, 0);				\
+     }									\
+ } while (0)
+@@ -1236,19 +1297,19 @@ static __inline__ void RADEON_MARK_SYNC(RADEONInfoPtr info, ScrnInfoPtr pScrn)
+ #endif
+ #ifdef USE_XAA
+     if (!info->useEXA)
+-	SET_SYNC_FLAG(info->accel);
++	SET_SYNC_FLAG(info->accel_state->accel);
+ #endif
+ }
+ 
+ static __inline__ void RADEON_SYNC(RADEONInfoPtr info, ScrnInfoPtr pScrn)
+ {
+ #ifdef USE_EXA
+-    if (info->useEXA)
++    if (info->useEXA && pScrn->pScreen)
+ 	exaWaitSync(pScrn->pScreen);
+ #endif
+ #ifdef USE_XAA
+-    if (!info->useEXA && info->accel)
+-	info->accel->Sync(pScrn);
++    if (!info->useEXA && info->accel_state->accel)
++	info->accel_state->accel->Sync(pScrn);
+ #endif
+ }
+ 
+diff --git a/src/radeon_accel.c b/src/radeon_accel.c
+index 65ad33d..a6e332d 100644
+--- a/src/radeon_accel.c
++++ b/src/radeon_accel.c
+@@ -83,9 +83,7 @@
+ #include "radeon_version.h"
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+-#include "radeon_dri.h"
+-#include "radeon_common.h"
+-#include "radeon_sarea.h"
++#include "radeon_drm.h"
+ #endif
+ 
+ 				/* Line support */
+@@ -130,9 +128,9 @@ void RADEONWaitForFifoFunction(ScrnInfoPtr pScrn, int entries)
+ 
+     for (;;) {
+ 	for (i = 0; i < RADEON_TIMEOUT; i++) {
+-	    info->fifo_slots =
++	    info->accel_state->fifo_slots =
+ 		INREG(RADEON_RBBM_STATUS) & RADEON_RBBM_FIFOCNT_MASK;
+-	    if (info->fifo_slots >= entries) return;
++	    if (info->accel_state->fifo_slots >= entries) return;
+ 	}
+ 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		       "FIFO timed out: %u entries, stat=0x%08x\n",
+@@ -324,8 +322,8 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn)
+      * in the wrong place (happened).
+      */
+     RADEONWaitForFifo(pScrn, 2);
+-    OUTREG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset);
+-    OUTREG(RADEON_SRC_PITCH_OFFSET, info->dst_pitch_offset);
++    OUTREG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset);
++    OUTREG(RADEON_SRC_PITCH_OFFSET, info->accel_state->dst_pitch_offset);
+ 
+     RADEONWaitForFifo(pScrn, 1);
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+@@ -343,7 +341,7 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn)
+     OUTREG(RADEON_DEFAULT_SC_BOTTOM_RIGHT, (RADEON_DEFAULT_SC_RIGHT_MAX
+ 					    | RADEON_DEFAULT_SC_BOTTOM_MAX));
+     RADEONWaitForFifo(pScrn, 1);
+-    OUTREG(RADEON_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl
++    OUTREG(RADEON_DP_GUI_MASTER_CNTL, (info->accel_state->dp_gui_master_cntl
+ 				       | RADEON_GMC_BRUSH_SOLID_COLOR
+ 				       | RADEON_GMC_SRC_DATATYPE_COLOR));
+ 
+@@ -356,7 +354,7 @@ void RADEONEngineRestore(ScrnInfoPtr pScrn)
+ 
+     RADEONWaitForIdleMMIO(pScrn);
+ 
+-    info->XInited3D = FALSE;
++    info->accel_state->XInited3D = FALSE;
+ }
+ 
+ /* Initialize the acceleration hardware */
+@@ -364,6 +362,7 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+ {
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+     unsigned char *RADEONMMIO = info->MMIO;
++    int datatype = 0;
+ 
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		   "EngineInit (%d/%d)\n",
+@@ -372,21 +371,21 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+ 
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled && (IS_R300_3D || IS_R500_3D)) {
+-	drmRadeonGetParam np;
++	drm_radeon_getparam_t np;
+ 	int num_pipes;
+ 
+ 	memset(&np, 0, sizeof(np));
+ 	np.param = RADEON_PARAM_NUM_GB_PIPES;
+ 	np.value = &num_pipes;
+ 
+-	if (drmCommandWriteRead(info->drmFD, DRM_RADEON_GETPARAM, &np,
++	if (drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_GETPARAM, &np,
+ 				sizeof(np)) < 0) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		       "Failed to determine num pipes from DRM, falling back to "
+ 		       "manual look-up!\n");
+-	    info->num_gb_pipes = 0;
++	    info->accel_state->num_gb_pipes = 0;
+ 	} else {
+-	    info->num_gb_pipes = num_pipes;
++	    info->accel_state->num_gb_pipes = num_pipes;
+ 	}
+     }
+ #endif
+@@ -399,34 +398,34 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+ 	(info->ChipFamily == CHIP_FAMILY_RS400) ||
+ 	(info->ChipFamily == CHIP_FAMILY_RS480) ||
+ 	IS_R500_3D) {
+-	if (info->num_gb_pipes == 0) {
++	if (info->accel_state->num_gb_pipes == 0) {
+ 	    uint32_t gb_pipe_sel = INREG(R400_GB_PIPE_SELECT);
+ 
+-	    info->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
++	    info->accel_state->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
+ 	    if (IS_R500_3D)
+ 		OUTPLL(pScrn, R500_DYN_SCLK_PWMEM_PIPE, (1 | ((gb_pipe_sel >> 8) & 0xf) << 4));
+ 	}
+     } else {
+-	if (info->num_gb_pipes == 0) {
++	if (info->accel_state->num_gb_pipes == 0) {
+ 	    if ((info->ChipFamily == CHIP_FAMILY_R300) ||
+ 		(info->ChipFamily == CHIP_FAMILY_R350)) {
+ 		/* R3xx chips */
+-		info->num_gb_pipes = 2;
++		info->accel_state->num_gb_pipes = 2;
+ 	    } else {
+ 		/* RV3xx chips */
+-		info->num_gb_pipes = 1;
++		info->accel_state->num_gb_pipes = 1;
+ 	    }
+ 	}
+     }
+ 
+     if (IS_R300_3D || IS_R500_3D)
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-		   "num pipes is %d\n", info->num_gb_pipes);
++		   "num quad-pipes is %d\n", info->accel_state->num_gb_pipes);
+ 
+     if (IS_R300_3D || IS_R500_3D) {
+ 	uint32_t gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16);
+ 
+-	switch(info->num_gb_pipes) {
++	switch(info->accel_state->num_gb_pipes) {
+ 	case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break;
+ 	case 3: gb_tile_config |= R300_PIPE_COUNT_R420_3P; break;
+ 	case 4: gb_tile_config |= R300_PIPE_COUNT_R420; break;
+@@ -446,11 +445,11 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+     RADEONEngineReset(pScrn);
+ 
+     switch (info->CurrentLayout.pixel_code) {
+-    case 8:  info->datatype = 2; break;
+-    case 15: info->datatype = 3; break;
+-    case 16: info->datatype = 4; break;
+-    case 24: info->datatype = 5; break;
+-    case 32: info->datatype = 6; break;
++    case 8:  datatype = 2; break;
++    case 15: datatype = 3; break;
++    case 16: datatype = 4; break;
++    case 24: datatype = 5; break;
++    case 32: datatype = 6; break;
+     default:
+ 	xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		       "Unknown depth/bpp = %d/%d (code = %d)\n",
+@@ -458,34 +457,12 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+ 		       info->CurrentLayout.bitsPerPixel,
+ 		       info->CurrentLayout.pixel_code);
+     }
+-    info->pitch = ((info->CurrentLayout.displayWidth / 8) *
+-		   (info->CurrentLayout.pixel_bytes == 3 ? 3 : 1));
+ 
+-    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+-		   "Pitch for acceleration = %d\n", info->pitch);
+-
+-    info->dp_gui_master_cntl =
+-	((info->datatype << RADEON_GMC_DST_DATATYPE_SHIFT)
++    info->accel_state->dp_gui_master_cntl =
++	((datatype << RADEON_GMC_DST_DATATYPE_SHIFT)
+ 	 | RADEON_GMC_CLR_CMP_CNTL_DIS
+ 	 | RADEON_GMC_DST_PITCH_OFFSET_CNTL);
+ 
+-#ifdef XF86DRI
+-    info->sc_left         = 0x00000000;
+-    info->sc_right        = RADEON_DEFAULT_SC_RIGHT_MAX;
+-    info->sc_top          = 0x00000000;
+-    info->sc_bottom       = RADEON_DEFAULT_SC_BOTTOM_MAX;
+-
+-    info->re_top_left     = 0x00000000;
+-    if (info->ChipFamily <= CHIP_FAMILY_RV280)
+-	info->re_width_height = ((0x7ff << RADEON_RE_WIDTH_SHIFT) |
+-				 (0x7ff << RADEON_RE_HEIGHT_SHIFT));
+-    else
+-	info->re_width_height = ((8191 << R300_SCISSOR_X_SHIFT) |
+-				 (8191 << R300_SCISSOR_Y_SHIFT));
+-
+-    info->aux_sc_cntl     = 0x00000000;
+-#endif
+-
+     RADEONEngineRestore(pScrn);
+ }
+ 
+@@ -534,14 +511,14 @@ void RADEONEngineInit(ScrnInfoPtr pScrn)
+ /* Stop the CP */
+ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info)
+ {
+-    drmRadeonCPStop  stop;
++    drm_radeon_cp_stop_t  stop;
+     int              ret, i;
+ 
+     stop.flush = 1;
+     stop.idle  = 1;
+ 
+-    ret = drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP, &stop,
+-			  sizeof(drmRadeonCPStop));
++    ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP, &stop,
++			  sizeof(drm_radeon_cp_stop_t));
+ 
+     if (ret == 0) {
+ 	return 0;
+@@ -553,8 +530,8 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info)
+ 
+     i = 0;
+     do {
+-	ret = drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP, &stop,
+-			      sizeof(drmRadeonCPStop));
++	ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP, &stop,
++			      sizeof(drm_radeon_cp_stop_t));
+     } while (ret && errno == EBUSY && i++ < RADEON_IDLE_RETRY);
+ 
+     if (ret == 0) {
+@@ -565,8 +542,8 @@ int RADEONCPStop(ScrnInfoPtr pScrn, RADEONInfoPtr info)
+ 
+     stop.idle = 0;
+ 
+-    if (drmCommandWrite(info->drmFD, DRM_RADEON_CP_STOP,
+-			&stop, sizeof(drmRadeonCPStop))) {
++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_STOP,
++			&stop, sizeof(drm_radeon_cp_stop_t))) {
+ 	return -errno;
+     } else {
+ 	return 0;
+@@ -608,7 +585,7 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
+ 
+     while (1) {
+ 	do {
+-	    ret = drmDMA(info->drmFD, &dma);
++	    ret = drmDMA(info->dri->drmFD, &dma);
+ 	    if (ret && ret != -EBUSY) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			   "%s: CP GetBuffer %d\n", __FUNCTION__, ret);
+@@ -616,7 +593,7 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
+ 	} while ((ret == -EBUSY) && (i++ < RADEON_TIMEOUT));
+ 
+ 	if (ret == 0) {
+-	    buf = &info->buffers->list[indx];
++	    buf = &info->dri->buffers->list[indx];
+ 	    buf->used = 0;
+ 	    if (RADEON_VERBOSE) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+@@ -641,9 +618,9 @@ drmBufPtr RADEONCPGetBuffer(ScrnInfoPtr pScrn)
+ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard)
+ {
+     RADEONInfoPtr      info   = RADEONPTR(pScrn);
+-    drmBufPtr          buffer = info->indirectBuffer;
+-    int                start  = info->indirectStart;
+-    drmRadeonIndirect  indirect;
++    drmBufPtr          buffer = info->cp->indirectBuffer;
++    int                start  = info->cp->indirectStart;
++    drm_radeon_indirect_t  indirect;
+ 
+     if (!buffer) return;
+     if (start == buffer->used && !discard) return;
+@@ -658,18 +635,18 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard)
+     indirect.end     = buffer->used;
+     indirect.discard = discard;
+ 
+-    drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT,
+-			&indirect, sizeof(drmRadeonIndirect));
++    drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT,
++			&indirect, sizeof(drm_radeon_indirect_t));
+ 
+     if (discard) {
+-	info->indirectBuffer = RADEONCPGetBuffer(pScrn);
+-	info->indirectStart  = 0;
++	info->cp->indirectBuffer = RADEONCPGetBuffer(pScrn);
++	info->cp->indirectStart  = 0;
+     } else {
+ 	/* Start on a double word boundary */
+-	info->indirectStart  = buffer->used = (buffer->used + 7) & ~7;
++	info->cp->indirectStart  = buffer->used = (buffer->used + 7) & ~7;
+ 	if (RADEON_VERBOSE) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "   Starting at %d\n",
+-		       info->indirectStart);
++		       info->cp->indirectStart);
+ 	}
+     }
+ }
+@@ -678,12 +655,12 @@ void RADEONCPFlushIndirect(ScrnInfoPtr pScrn, int discard)
+ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
+ {
+     RADEONInfoPtr      info   = RADEONPTR(pScrn);
+-    drmBufPtr          buffer = info->indirectBuffer;
+-    int                start  = info->indirectStart;
+-    drmRadeonIndirect  indirect;
++    drmBufPtr          buffer = info->cp->indirectBuffer;
++    int                start  = info->cp->indirectStart;
++    drm_radeon_indirect_t  indirect;
+ 
+-    info->indirectBuffer = NULL;
+-    info->indirectStart  = 0;
++    info->cp->indirectBuffer = NULL;
++    info->cp->indirectStart  = 0;
+ 
+     if (!buffer) return;
+ 
+@@ -697,8 +674,8 @@ void RADEONCPReleaseIndirect(ScrnInfoPtr pScrn)
+     indirect.end     = buffer->used;
+     indirect.discard = 1;
+ 
+-    drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT,
+-			&indirect, sizeof(drmRadeonIndirect));
++    drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT,
++			&indirect, sizeof(drm_radeon_indirect_t));
+ }
+ 
+ /** \brief Calculate HostDataBlit parameters from pointer and pitch
+@@ -964,7 +941,7 @@ Bool RADEONAccelInit(ScreenPtr pScreen)
+     if (!info->useEXA) {
+ 	XAAInfoRecPtr  a;
+ 
+-	if (!(a = info->accel = XAACreateInfoRec())) {
++	if (!(a = info->accel_state->accel = XAACreateInfoRec())) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "XAACreateInfoRec Error\n");
+ 	    return FALSE;
+ 	}
+@@ -993,16 +970,16 @@ void RADEONInit3DEngine(ScrnInfoPtr pScrn)
+ 
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled) {
+-	RADEONSAREAPrivPtr pSAREAPriv;
++	drm_radeon_sarea_t *pSAREAPriv;
+ 
+ 	pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen);
+-	pSAREAPriv->ctxOwner = DRIGetContext(pScrn->pScreen);
++	pSAREAPriv->ctx_owner = DRIGetContext(pScrn->pScreen);
+ 	RADEONInit3DEngineCP(pScrn);
+     } else
+ #endif
+ 	RADEONInit3DEngineMMIO(pScrn);
+ 
+-    info->XInited3D = TRUE;
++    info->accel_state->XInited3D = TRUE;
+ }
+ 
+ #ifdef USE_XAA
+@@ -1013,7 +990,7 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr  info  = RADEONPTR(pScrn);
+     int            cpp = info->CurrentLayout.pixel_bytes;
+-    int            depthCpp = (info->depthBits - 8) / 4;
++    int            depthCpp = (info->dri->depthBits - 8) / 4;
+     int            width_bytes = pScrn->displayWidth * cpp;
+     int            bufferSize;
+     int            depthSize;
+@@ -1023,9 +1000,9 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+     BoxRec         MemBox;
+     FBAreaPtr      fbarea;
+ 
+-    info->frontOffset = 0;
+-    info->frontPitch = pScrn->displayWidth;
+-    info->backPitch = pScrn->displayWidth;
++    info->dri->frontOffset = 0;
++    info->dri->frontPitch = pScrn->displayWidth;
++    info->dri->backPitch = pScrn->displayWidth;
+ 
+     /* make sure we use 16 line alignment for tiling (8 might be enough).
+      * Might need that for non-XF86DRI too?
+@@ -1042,30 +1019,18 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+      * which is always the case if color tiling is used due to color pitch
+      * but not necessarily otherwise, and its height a multiple of 16 lines.
+      */
+-    info->depthPitch = (pScrn->displayWidth + 31) & ~31;
+-    depthSize = ((((pScrn->virtualY + 15) & ~15) * info->depthPitch
++    info->dri->depthPitch = (pScrn->displayWidth + 31) & ~31;
++    depthSize = ((((pScrn->virtualY + 15) & ~15) * info->dri->depthPitch
+ 		  * depthCpp + RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
+ 
+-    switch (info->CPMode) {
+-    case RADEON_DEFAULT_CP_PIO_MODE:
+-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in PIO mode\n");
+-	break;
+-    case RADEON_DEFAULT_CP_BM_MODE:
+-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in BM mode\n");
+-	break;
+-    default:
+-        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CP in UNKNOWN mode\n");
+-	break;
+-    }
+-
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-	       "Using %d MB GART aperture\n", info->gartSize);
++	       "Using %d MB GART aperture\n", info->dri->gartSize);
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-	       "Using %d MB for the ring buffer\n", info->ringSize);
++	       "Using %d MB for the ring buffer\n", info->dri->ringSize);
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-	       "Using %d MB for vertex/indirect buffers\n", info->bufSize);
++	       "Using %d MB for vertex/indirect buffers\n", info->dri->bufSize);
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-	       "Using %d MB for GART textures\n", info->gartTexSize);
++	       "Using %d MB for GART textures\n", info->dri->gartTexSize);
+ 
+     /* Try for front, back, depth, and three framebuffers worth of
+      * pixmap cache.  Should be enough for a fullscreen background
+@@ -1075,35 +1040,35 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+      * otherwise probably), and never reserve more than 3 offscreen buffers as it's
+      * probably useless for XAA.
+      */
+-    if (info->textureSize >= 0) {
++    if (info->dri->textureSize >= 0) {
+ 	texsizerequest = ((int)info->FbMapSize - 2 * bufferSize - depthSize
+ 			 - 2 * width_bytes - 16384 - info->FbSecureSize)
+ 	/* first divide, then multiply or we'll get an overflow (been there...) */
+-			 / 100 * info->textureSize;
++			 / 100 * info->dri->textureSize;
+     }
+     else {
+ 	texsizerequest = (int)info->FbMapSize / 2;
+     }
+-    info->textureSize = info->FbMapSize - info->FbSecureSize - 5 * bufferSize - depthSize;
++    info->dri->textureSize = info->FbMapSize - info->FbSecureSize - 5 * bufferSize - depthSize;
+ 
+     /* If that gives us less than the requested memory, let's
+      * be greedy and grab some more.  Sorry, I care more about 3D
+      * performance than playing nicely, and you'll get around a full
+      * framebuffer's worth of pixmap cache anyway.
+      */
+-    if (info->textureSize < texsizerequest) {
+-        info->textureSize = info->FbMapSize - 4 * bufferSize - depthSize;
++    if (info->dri->textureSize < texsizerequest) {
++        info->dri->textureSize = info->FbMapSize - 4 * bufferSize - depthSize;
+     }
+-    if (info->textureSize < texsizerequest) {
+-        info->textureSize = info->FbMapSize - 3 * bufferSize - depthSize;
++    if (info->dri->textureSize < texsizerequest) {
++        info->dri->textureSize = info->FbMapSize - 3 * bufferSize - depthSize;
+     }
+ 
+     /* If there's still no space for textures, try without pixmap cache, but
+      * never use the reserved space, the space hw cursor and PCIGART table might
+      * use.
+      */
+-    if (info->textureSize < 0) {
+-	info->textureSize = info->FbMapSize - 2 * bufferSize - depthSize
++    if (info->dri->textureSize < 0) {
++	info->dri->textureSize = info->FbMapSize - 2 * bufferSize - depthSize
+ 	                    - 2 * width_bytes - 16384 - info->FbSecureSize;
+     }
+ 
+@@ -1112,14 +1077,14 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+      */
+     /* FIXME: what's this good for? condition is pretty much impossible to meet */
+     if ((int)info->FbMapSize - 8192*width_bytes - bufferSize - depthSize
+-	> info->textureSize) {
+-	info->textureSize =
++	> info->dri->textureSize) {
++	info->dri->textureSize =
+ 		info->FbMapSize - 8192*width_bytes - bufferSize - depthSize;
+     }
+ 
+     /* If backbuffer is disabled, don't allocate memory for it */
+-    if (info->noBackBuffer) {
+-	info->textureSize += bufferSize;
++    if (info->dri->noBackBuffer) {
++	info->dri->textureSize += bufferSize;
+     }
+ 
+     /* RADEON_BUFFER_ALIGN is not sufficient for backbuffer!
+@@ -1131,61 +1096,61 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+        can't be used (?) due to that log_tex_granularity thing???
+        Could use different copyscreentoscreen function for the pageflip copies
+        (which would use different src and dst offsets) to avoid this. */   
+-    if (info->allowColorTiling && !info->noBackBuffer) {
+-	info->textureSize = info->FbMapSize - ((info->FbMapSize - info->textureSize +
++    if (info->allowColorTiling && !info->dri->noBackBuffer) {
++	info->dri->textureSize = info->FbMapSize - ((info->FbMapSize - info->dri->textureSize +
+ 			  width_bytes * 16 - 1) / (width_bytes * 16)) * (width_bytes * 16);
+     }
+-    if (info->textureSize > 0) {
+-	l = RADEONMinBits((info->textureSize-1) / RADEON_NR_TEX_REGIONS);
++    if (info->dri->textureSize > 0) {
++	l = RADEONMinBits((info->dri->textureSize-1) / RADEON_NR_TEX_REGIONS);
+ 	if (l < RADEON_LOG_TEX_GRANULARITY)
+ 	    l = RADEON_LOG_TEX_GRANULARITY;
+ 	/* Round the texture size up to the nearest whole number of
+ 	 * texture regions.  Again, be greedy about this, don't
+ 	 * round down.
+ 	 */
+-	info->log2TexGran = l;
+-	info->textureSize = (info->textureSize >> l) << l;
++	info->dri->log2TexGran = l;
++	info->dri->textureSize = (info->dri->textureSize >> l) << l;
+     } else {
+-	info->textureSize = 0;
++	info->dri->textureSize = 0;
+     }
+ 
+     /* Set a minimum usable local texture heap size.  This will fit
+      * two 256x256x32bpp textures.
+      */
+-    if (info->textureSize < 512 * 1024) {
+-	info->textureOffset = 0;
+-	info->textureSize = 0;
++    if (info->dri->textureSize < 512 * 1024) {
++	info->dri->textureOffset = 0;
++	info->dri->textureSize = 0;
+     }
+ 
+-    if (info->allowColorTiling && !info->noBackBuffer) {
+-	info->textureOffset = ((info->FbMapSize - info->textureSize) /
+-			       (width_bytes * 16)) * (width_bytes * 16);
++    if (info->allowColorTiling && !info->dri->noBackBuffer) {
++	info->dri->textureOffset = ((info->FbMapSize - info->dri->textureSize) /
++				    (width_bytes * 16)) * (width_bytes * 16);
+     }
+     else {
+ 	/* Reserve space for textures */
+-	info->textureOffset = ((info->FbMapSize - info->textureSize +
+-				RADEON_BUFFER_ALIGN) &
+-			       ~(uint32_t)RADEON_BUFFER_ALIGN);
++	info->dri->textureOffset = ((info->FbMapSize - info->dri->textureSize +
++				     RADEON_BUFFER_ALIGN) &
++				    ~(uint32_t)RADEON_BUFFER_ALIGN);
+     }
+ 
+     /* Reserve space for the shared depth
+      * buffer.
+      */
+-    info->depthOffset = ((info->textureOffset - depthSize +
+-			  RADEON_BUFFER_ALIGN) &
+-			 ~(uint32_t)RADEON_BUFFER_ALIGN);
++    info->dri->depthOffset = ((info->dri->textureOffset - depthSize +
++			       RADEON_BUFFER_ALIGN) &
++			      ~(uint32_t)RADEON_BUFFER_ALIGN);
+ 
+     /* Reserve space for the shared back buffer */
+-    if (info->noBackBuffer) {
+-       info->backOffset = info->depthOffset;
++    if (info->dri->noBackBuffer) {
++       info->dri->backOffset = info->dri->depthOffset;
+     } else {
+-       info->backOffset = ((info->depthOffset - bufferSize +
+-			    RADEON_BUFFER_ALIGN) &
+-			   ~(uint32_t)RADEON_BUFFER_ALIGN);
++       info->dri->backOffset = ((info->dri->depthOffset - bufferSize +
++				 RADEON_BUFFER_ALIGN) &
++				~(uint32_t)RADEON_BUFFER_ALIGN);
+     }
+ 
+-    info->backY = info->backOffset / width_bytes;
+-    info->backX = (info->backOffset - (info->backY * width_bytes)) / cpp;
++    info->dri->backY = info->dri->backOffset / width_bytes;
++    info->dri->backX = (info->dri->backOffset - (info->dri->backY * width_bytes)) / cpp;
+ 
+     scanlines = (info->FbMapSize-info->FbSecureSize) / width_bytes;
+     if (scanlines > 8191)
+@@ -1236,12 +1201,12 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+ 	    /* Lines in offscreen area needed for depth buffer and
+ 	     * textures
+ 	     */
+-	    info->depthTexLines = (scanlines
+-				   - info->depthOffset / width_bytes);
+-	    info->backLines	    = (scanlines
+-				       - info->backOffset / width_bytes
+-				       - info->depthTexLines);
+-	    info->backArea	    = NULL;
++	    info->dri->depthTexLines = (scanlines
++					- info->dri->depthOffset / width_bytes);
++	    info->dri->backLines	    = (scanlines
++					       - info->dri->backOffset / width_bytes
++					       - info->dri->depthTexLines);
++	    info->dri->backArea	    = NULL;
+ 	} else {
+ 	    xf86DrvMsg(scrnIndex, X_ERROR,
+ 		       "Unable to determine largest offscreen area "
+@@ -1252,30 +1217,30 @@ RADEONSetupMemXAA_DRI(int scrnIndex, ScreenPtr pScreen)
+ 
+     xf86DrvMsg(scrnIndex, X_INFO,
+ 	       "Will use front buffer at offset 0x%x\n",
+-	       info->frontOffset);
++	       info->dri->frontOffset);
+ 
+     xf86DrvMsg(scrnIndex, X_INFO,
+ 	       "Will use back buffer at offset 0x%x\n",
+-	       info->backOffset);
++	       info->dri->backOffset);
+     xf86DrvMsg(scrnIndex, X_INFO,
+ 	       "Will use depth buffer at offset 0x%x\n",
+-	       info->depthOffset);
++	       info->dri->depthOffset);
+     if (info->cardType==CARD_PCIE)
+     	xf86DrvMsg(scrnIndex, X_INFO,
+ 	           "Will use %d kb for PCI GART table at offset 0x%x\n",
+-		   info->pciGartSize/1024, (unsigned)info->pciGartOffset);
++		   info->dri->pciGartSize/1024, (unsigned)info->dri->pciGartOffset);
+     xf86DrvMsg(scrnIndex, X_INFO,
+ 	       "Will use %d kb for textures at offset 0x%x\n",
+-	       info->textureSize/1024, info->textureOffset);
++	       info->dri->textureSize/1024, info->dri->textureOffset);
+ 
+-    info->frontPitchOffset = (((info->frontPitch * cpp / 64) << 22) |
+-			      ((info->frontOffset + info->fbLocation) >> 10));
++    info->dri->frontPitchOffset = (((info->dri->frontPitch * cpp / 64) << 22) |
++				   ((info->dri->frontOffset + info->fbLocation) >> 10));
+ 
+-    info->backPitchOffset = (((info->backPitch * cpp / 64) << 22) |
+-			     ((info->backOffset + info->fbLocation) >> 10));
++    info->dri->backPitchOffset = (((info->dri->backPitch * cpp / 64) << 22) |
++				  ((info->dri->backOffset + info->fbLocation) >> 10));
+ 
+-    info->depthPitchOffset = (((info->depthPitch * depthCpp / 64) << 22) |
+-			      ((info->depthOffset + info->fbLocation) >> 10));
++    info->dri->depthPitchOffset = (((info->dri->depthPitch * depthCpp / 64) << 22) |
++				   ((info->dri->depthOffset + info->fbLocation) >> 10));
+     return TRUE;
+ }
+ #endif /* XF86DRI */
+diff --git a/src/radeon_accelfuncs.c b/src/radeon_accelfuncs.c
+index 56793cd..45eb6d5 100644
+--- a/src/radeon_accelfuncs.c
++++ b/src/radeon_accelfuncs.c
+@@ -137,14 +137,14 @@ FUNC_NAME(RADEONSetupForSolidFill)(ScrnInfoPtr pScrn,
+     ACCEL_PREAMBLE();
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_BRUSH_SOLID_COLOR
+-				     | RADEON_GMC_SRC_DATATYPE_COLOR
+-				     | RADEON_ROP[rop].pattern);
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_BRUSH_SOLID_COLOR
++						  | RADEON_GMC_SRC_DATATYPE_COLOR
++						  | RADEON_ROP[rop].pattern);
+ 
+     BEGIN_ACCEL(4);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  color);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_DP_CNTL,            (RADEON_DST_X_LEFT_TO_RIGHT
+@@ -172,7 +172,7 @@ FUNC_NAME(RADEONSubsequentSolidFillRect)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x);
+     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT, (w << 16) | h);
+@@ -191,10 +191,10 @@ FUNC_NAME(RADEONSetupForSolidLine)(ScrnInfoPtr pScrn,
+     ACCEL_PREAMBLE();
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_BRUSH_SOLID_COLOR
+-				     | RADEON_GMC_SRC_DATATYPE_COLOR
+-				     | RADEON_ROP[rop].pattern);
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_BRUSH_SOLID_COLOR
++						  | RADEON_GMC_SRC_DATATYPE_COLOR
++						  | RADEON_ROP[rop].pattern);
+ 
+     if (info->ChipFamily >= CHIP_FAMILY_RV200) {
+ 	BEGIN_ACCEL(1);
+@@ -205,7 +205,7 @@ FUNC_NAME(RADEONSetupForSolidLine)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  color);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+ 
+@@ -236,7 +236,7 @@ FUNC_NAME(RADEONSubsequentSolidHorVertLine)(ScrnInfoPtr pScrn,
+ 
+     OUT_ACCEL_REG(RADEON_DP_CNTL,          (RADEON_DST_X_LEFT_TO_RIGHT
+ 					    | RADEON_DST_Y_TOP_TO_BOTTOM));
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x);
+     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT, (w << 16) | h);
+@@ -269,7 +269,7 @@ FUNC_NAME(RADEONSubsequentSolidTwoPointLine)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_DST_LINE_START, (ya << 16) | xa);
+     OUT_ACCEL_REG(RADEON_DST_LINE_END,   (yb << 16) | xb);
+@@ -298,8 +298,8 @@ FUNC_NAME(RADEONSetupForDashedLine)(ScrnInfoPtr pScrn,
+     ACCEL_PREAMBLE();
+ 
+     /* Save for determining whether or not to draw last pixel */
+-    info->dashLen = length;
+-    info->dashPattern = pat;
++    info->accel_state->dashLen = length;
++    info->accel_state->dashPattern = pat;
+ 
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+ # define PAT_SHIFT(pat, shift) (pat >> shift)
+@@ -315,18 +315,18 @@ FUNC_NAME(RADEONSetupForDashedLine)(ScrnInfoPtr pScrn,
+     }
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | (bg == -1
+-					? RADEON_GMC_BRUSH_32x1_MONO_FG_LA
+-					: RADEON_GMC_BRUSH_32x1_MONO_FG_BG)
+-				     | RADEON_ROP[rop].pattern
+-				     | RADEON_GMC_BYTE_LSB_TO_MSB);
+-    info->dash_fg = fg;
+-    info->dash_bg = bg;
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | (bg == -1
++						     ? RADEON_GMC_BRUSH_32x1_MONO_FG_LA
++						     : RADEON_GMC_BRUSH_32x1_MONO_FG_BG)
++						  | RADEON_ROP[rop].pattern
++						  | RADEON_GMC_BYTE_LSB_TO_MSB);
++    info->accel_state->dash_fg = fg;
++    info->accel_state->dash_bg = bg;
+ 
+     BEGIN_ACCEL((bg == -1) ? 4 : 5);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg);
+     if (bg != -1)
+@@ -348,7 +348,7 @@ FUNC_NAME(RADEONDashedLastPel)(ScrnInfoPtr pScrn,
+ 			       int fg)
+ {
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+-    uint32_t dp_gui_master_cntl = info->dp_gui_master_cntl_clip;
++    uint32_t dp_gui_master_cntl = info->accel_state->dp_gui_master_cntl_clip;
+     ACCEL_PREAMBLE();
+ 
+     dp_gui_master_cntl &= ~RADEON_GMC_BRUSH_DATATYPE_MASK;
+@@ -362,15 +362,15 @@ FUNC_NAME(RADEONDashedLastPel)(ScrnInfoPtr pScrn,
+     OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, dp_gui_master_cntl);
+     OUT_ACCEL_REG(RADEON_DP_CNTL,            (RADEON_DST_X_LEFT_TO_RIGHT
+ 					      | RADEON_DST_Y_TOP_TO_BOTTOM));
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg);
+     OUT_ACCEL_REG(RADEON_DST_Y_X,            (y << 16) | x);
+     OUT_ACCEL_REG(RADEON_DST_WIDTH_HEIGHT,   (1 << 16) | 1);
+ 
+     /* Restore old values */
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
+-    OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  info->dash_fg);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  info->accel_state->dash_fg);
+ 
+     FINISH_ACCEL();
+     BEGIN_ACCEL(2);
+@@ -402,17 +402,17 @@ FUNC_NAME(RADEONSubsequentDashedTwoPointLine)(ScrnInfoPtr pScrn,
+ 	else                 shift = deltay;
+ 
+ 	shift += phase;
+-	shift %= info->dashLen;
++	shift %= info->accel_state->dashLen;
+ 
+-	if ((info->dashPattern >> shift) & 1)
+-	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->dash_fg);
+-	else if (info->dash_bg != -1)
+-	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->dash_bg);
++	if ((info->accel_state->dashPattern >> shift) & 1)
++	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->accel_state->dash_fg);
++	else if (info->accel_state->dash_bg != -1)
++	    FUNC_NAME(RADEONDashedLastPel)(pScrn, xb, yb, info->accel_state->dash_bg);
+     }
+ 
+     BEGIN_ACCEL(4);
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_DST_LINE_START,   (ya << 16) | xa);
+     OUT_ACCEL_REG(RADEON_DST_LINE_PATCOUNT, phase);
+@@ -433,7 +433,7 @@ FUNC_NAME(RADEONSetTransparency)(ScrnInfoPtr pScrn,
+ {
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+ 
+-    if ((trans_color != -1) || (info->XAAForceTransBlit == TRUE)) {
++    if ((trans_color != -1) || (info->accel_state->XAAForceTransBlit == TRUE)) {
+ 	ACCEL_PREAMBLE();
+ 
+ 	BEGIN_ACCEL(3);
+@@ -461,20 +461,20 @@ FUNC_NAME(RADEONSetupForScreenToScreenCopy)(ScrnInfoPtr pScrn,
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+     ACCEL_PREAMBLE();
+ 
+-    info->xdir = xdir;
+-    info->ydir = ydir;
++    info->accel_state->xdir = xdir;
++    info->accel_state->ydir = ydir;
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_BRUSH_NONE
+-				     | RADEON_GMC_SRC_DATATYPE_COLOR
+-				     | RADEON_ROP[rop].rop
+-				     | RADEON_DP_SRC_SOURCE_MEMORY
+-				     | RADEON_GMC_SRC_PITCH_OFFSET_CNTL);
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_BRUSH_NONE
++						  | RADEON_GMC_SRC_DATATYPE_COLOR
++						  | RADEON_ROP[rop].rop
++						  | RADEON_DP_SRC_SOURCE_MEMORY
++						  | RADEON_GMC_SRC_PITCH_OFFSET_CNTL);
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_DP_CNTL,
+ 		  ((xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) |
+@@ -487,7 +487,7 @@ FUNC_NAME(RADEONSetupForScreenToScreenCopy)(ScrnInfoPtr pScrn,
+                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+     FINISH_ACCEL();
+ 
+-    info->trans_color = trans_color;
++    info->accel_state->trans_color = trans_color;
+     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color);
+ }
+ 
+@@ -501,14 +501,14 @@ FUNC_NAME(RADEONSubsequentScreenToScreenCopy)(ScrnInfoPtr pScrn,
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+     ACCEL_PREAMBLE();
+ 
+-    if (info->xdir < 0) xa += w - 1, xb += w - 1;
+-    if (info->ydir < 0) ya += h - 1, yb += h - 1;
++    if (info->accel_state->xdir < 0) xa += w - 1, xb += w - 1;
++    if (info->accel_state->ydir < 0) ya += h - 1, yb += h - 1;
+ 
+     BEGIN_ACCEL(5);
+ 
+-    OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (ya <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (yb <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_SRC_Y_X,          (ya << 16) | xa);
+     OUT_ACCEL_REG(RADEON_DST_Y_X,          (yb << 16) | xb);
+@@ -552,19 +552,19 @@ FUNC_NAME(RADEONSetupForMono8x8PatternFill)(ScrnInfoPtr pScrn,
+ #endif
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | (bg == -1
+-					? RADEON_GMC_BRUSH_8X8_MONO_FG_LA
+-					: RADEON_GMC_BRUSH_8X8_MONO_FG_BG)
+-				     | RADEON_ROP[rop].pattern
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | (bg == -1
++						     ? RADEON_GMC_BRUSH_8X8_MONO_FG_LA
++						     : RADEON_GMC_BRUSH_8X8_MONO_FG_BG)
++						  | RADEON_ROP[rop].pattern
+ #if X_BYTE_ORDER == X_LITTLE_ENDIAN
+-				     | RADEON_GMC_BYTE_MSB_TO_LSB
++						  | RADEON_GMC_BYTE_MSB_TO_LSB
+ #endif
+-				    );
++						  );
+ 
+     BEGIN_ACCEL((bg == -1) ? 5 : 6);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR,  fg);
+     if (bg != -1)
+@@ -600,7 +600,7 @@ FUNC_NAME(RADEONSubsequentMono8x8PatternFillRect)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(4);
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_BRUSH_Y_X,        (patterny << 8) | patternx);
+     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x);
+@@ -625,21 +625,21 @@ FUNC_NAME(RADEONSetupForColor8x8PatternFill)(ScrnInfoPtr pScrn,
+     ACCEL_PREAMBLE();
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_BRUSH_8x8_COLOR
+-				     | RADEON_GMC_SRC_DATATYPE_COLOR
+-				     | RADEON_ROP[rop].pattern
+-				     | RADEON_DP_SRC_SOURCE_MEMORY);
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_BRUSH_8x8_COLOR
++						  | RADEON_GMC_SRC_DATATYPE_COLOR
++						  | RADEON_ROP[rop].pattern
++						  | RADEON_DP_SRC_SOURCE_MEMORY);
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_SRC_Y_X,            (paty << 16) | patx);
+ 
+     FINISH_ACCEL();
+ 
+-    info->trans_color = trans_color;
++    info->accel_state->trans_color = trans_color;
+     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color);
+ }
+ 
+@@ -655,7 +655,7 @@ FUNC_NAME(RADEONSubsequentColor8x8PatternFillRect)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(4);
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_BRUSH_Y_X,        (paty << 16) | patx);
+     OUT_ACCEL_REG(RADEON_DST_Y_X,          (y << 16) | x);
+@@ -666,7 +666,7 @@ FUNC_NAME(RADEONSubsequentColor8x8PatternFillRect)(ScrnInfoPtr pScrn,
+ #endif
+ 
+ #ifdef ACCEL_CP
+-#define CP_BUFSIZE (info->indirectBuffer->total/4-10)
++#define CP_BUFSIZE (info->cp->indirectBuffer->total/4-10)
+ 
+ /* Helper function to write out a HOSTDATA_BLT packet into the indirect
+  * buffer and set the XAA scratch buffer address appropriately.
+@@ -675,41 +675,41 @@ static void
+ RADEONCPScanlinePacket(ScrnInfoPtr pScrn, int bufno)
+ {
+     RADEONInfoPtr info = RADEONPTR(pScrn);
+-    int           chunk_words = info->scanline_hpass * info->scanline_words;
++    int           chunk_words = info->accel_state->scanline_hpass * info->accel_state->scanline_words;
+     ACCEL_PREAMBLE();
+ 
+     if (RADEON_VERBOSE) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "CPScanline Packet h=%d hpass=%d chunkwords=%d\n",
+-		   info->scanline_h, info->scanline_hpass, chunk_words);
++		   info->accel_state->scanline_h, info->accel_state->scanline_hpass, chunk_words);
+     }
+     BEGIN_RING(chunk_words+10);
+ 
+     OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_CNTL_HOSTDATA_BLT,chunk_words+10-2));
+-    OUT_RING(info->dp_gui_master_cntl_clip);
+-    OUT_RING(info->dst_pitch_offset |
+-    	((info->tilingEnabled && (info->scanline_y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+-    OUT_RING((info->scanline_y << 16) |
+-	     (info->scanline_x1clip & 0xffff));
+-    OUT_RING(((info->scanline_y+info->scanline_hpass) << 16) |
+-	     (info->scanline_x2clip & 0xffff));
+-    OUT_RING(info->scanline_fg);
+-    OUT_RING(info->scanline_bg);
+-    OUT_RING((info->scanline_y << 16) |
+-	     (info->scanline_x & 0xffff));
+-    OUT_RING((info->scanline_hpass << 16) |
+-	     (info->scanline_w & 0xffff));
++    OUT_RING(info->accel_state->dp_gui_master_cntl_clip);
++    OUT_RING(info->accel_state->dst_pitch_offset |
++    	((info->tilingEnabled && (info->accel_state->scanline_y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
++    OUT_RING((info->accel_state->scanline_y << 16) |
++	     (info->accel_state->scanline_x1clip & 0xffff));
++    OUT_RING(((info->accel_state->scanline_y+info->accel_state->scanline_hpass) << 16) |
++	     (info->accel_state->scanline_x2clip & 0xffff));
++    OUT_RING(info->accel_state->scanline_fg);
++    OUT_RING(info->accel_state->scanline_bg);
++    OUT_RING((info->accel_state->scanline_y << 16) |
++	     (info->accel_state->scanline_x & 0xffff));
++    OUT_RING((info->accel_state->scanline_hpass << 16) |
++	     (info->accel_state->scanline_w & 0xffff));
+     OUT_RING(chunk_words);
+ 
+-    info->scratch_buffer[bufno] = (unsigned char *)&__head[__count];
++    info->accel_state->scratch_buffer[bufno] = (unsigned char *)&__head[__count];
+     __count += chunk_words;
+ 
+     /* The ring can only be advanced after the __head and __count have
+        been adjusted above */
+     FINISH_ACCEL();
+ 
+-    info->scanline_y += info->scanline_hpass;
+-    info->scanline_h -= info->scanline_hpass;
++    info->accel_state->scanline_y += info->accel_state->scanline_hpass;
++    info->accel_state->scanline_h -= info->accel_state->scanline_hpass;
+ }
+ #endif
+ 
+@@ -729,22 +729,22 @@ FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr pScrn,
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+     ACCEL_PREAMBLE();
+ 
+-    info->scanline_bpp = 0;
++    info->accel_state->scanline_bpp = 0;
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_DST_CLIPPING
+-				     | RADEON_GMC_BRUSH_NONE
+-				     | (bg == -1
+-					? RADEON_GMC_SRC_DATATYPE_MONO_FG_LA
+-					: RADEON_GMC_SRC_DATATYPE_MONO_FG_BG)
+-				     | RADEON_ROP[rop].rop
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_DST_CLIPPING
++						  | RADEON_GMC_BRUSH_NONE
++						  | (bg == -1
++						     ? RADEON_GMC_SRC_DATATYPE_MONO_FG_LA
++						     : RADEON_GMC_SRC_DATATYPE_MONO_FG_BG)
++						  | RADEON_ROP[rop].rop
+ #if X_BYTE_ORDER == X_LITTLE_ENDIAN
+-				     | RADEON_GMC_BYTE_LSB_TO_MSB
++						  | RADEON_GMC_BYTE_LSB_TO_MSB
+ #else
+-				     | RADEON_GMC_BYTE_MSB_TO_LSB
++						  | RADEON_GMC_BYTE_MSB_TO_LSB
+ #endif
+-				     | RADEON_DP_SRC_SOURCE_HOST_DATA);
++						  | RADEON_DP_SRC_SOURCE_HOST_DATA);
+ 
+ #ifdef ACCEL_MMIO
+ 
+@@ -755,15 +755,15 @@ FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr pScrn,
+ 
+     OUT_ACCEL_REG(RADEON_RBBM_GUICNTL,       RADEON_HOST_DATA_SWAP_NONE);
+ #endif
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK,      planemask);
+     OUT_ACCEL_REG(RADEON_DP_SRC_FRGD_CLR,    fg);
+     OUT_ACCEL_REG(RADEON_DP_SRC_BKGD_CLR,    bg);
+ 
+ #else /* ACCEL_CP */
+ 
+-    info->scanline_fg = fg;
+-    info->scanline_bg = bg;
++    info->accel_state->scanline_fg = fg;
++    info->accel_state->scanline_bg = bg;
+ 
+ #if X_BYTE_ORDER == X_LITTLE_ENDIAN
+     BEGIN_ACCEL(1);
+@@ -796,31 +796,31 @@ FUNC_NAME(RADEONSubsequentScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr
+ #ifdef ACCEL_MMIO
+     ACCEL_PREAMBLE();
+ 
+-    info->scanline_h      = h;
+-    info->scanline_words  = (w + 31) >> 5;
++    info->accel_state->scanline_h      = h;
++    info->accel_state->scanline_words  = (w + 31) >> 5;
+ 
+ #ifdef __alpha__
+     /* Always use indirect for Alpha */
+     if (0)
+ #else
+-    if ((info->scanline_words * h) <= 9)
++    if ((info->accel_state->scanline_words * h) <= 9)
+ #endif
+     {
+ 	/* Turn on direct for less than 9 dword colour expansion */
+-	info->scratch_buffer[0] =
++	info->accel_state->scratch_buffer[0] =
+ 	    (unsigned char *)(ADDRREG(RADEON_HOST_DATA_LAST)
+-			      - (info->scanline_words - 1));
+-	info->scanline_direct   = 1;
++			      - (info->accel_state->scanline_words - 1));
++	info->accel_state->scanline_direct   = 1;
+     } else {
+ 	/* Use indirect for anything else */
+-	info->scratch_buffer[0] = info->scratch_save;
+-	info->scanline_direct   = 0;
++	info->accel_state->scratch_buffer[0] = info->accel_state->scratch_save;
++	info->accel_state->scanline_direct   = 0;
+     }
+ 
+-    BEGIN_ACCEL(5 + (info->scanline_direct ?
+-		     (info->scanline_words * h) : 0));
++    BEGIN_ACCEL(5 + (info->accel_state->scanline_direct ?
++		     (info->accel_state->scanline_words * h) : 0));
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,      (y << 16)     | ((x+skipleft)
+ 							    & 0xffff));
+@@ -833,17 +833,17 @@ FUNC_NAME(RADEONSubsequentScanlineCPUToScreenColorExpandFill)(ScrnInfoPtr
+ 
+ #else /* ACCEL_CP */
+ 
+-    info->scanline_x      = x;
+-    info->scanline_y      = y;
++    info->accel_state->scanline_x      = x;
++    info->accel_state->scanline_y      = y;
+     /* Have to pad the width here and use clipping engine */
+-    info->scanline_w      = (w + 31) & ~31;
+-    info->scanline_h      = h;
++    info->accel_state->scanline_w      = (w + 31) & ~31;
++    info->accel_state->scanline_h      = h;
+ 
+-    info->scanline_x1clip = x + skipleft;
+-    info->scanline_x2clip = x + w;
++    info->accel_state->scanline_x1clip = x + skipleft;
++    info->accel_state->scanline_x2clip = x + w;
+ 
+-    info->scanline_words  = info->scanline_w / 32;
+-    info->scanline_hpass  = min(h,(CP_BUFSIZE/info->scanline_words));
++    info->accel_state->scanline_words  = info->accel_state->scanline_w / 32;
++    info->accel_state->scanline_hpass  = min(h,(CP_BUFSIZE/info->accel_state->scanline_words));
+ 
+     RADEONCPScanlinePacket(pScrn, 0);
+ 
+@@ -859,21 +859,21 @@ FUNC_NAME(RADEONSubsequentScanline)(ScrnInfoPtr pScrn,
+ {
+     RADEONInfoPtr    info = RADEONPTR(pScrn);
+ #ifdef ACCEL_MMIO
+-    uint32_t        *p    = (pointer)info->scratch_buffer[bufno];
++    uint32_t        *p    = (pointer)info->accel_state->scratch_buffer[bufno];
+     int              i;
+-    int              left = info->scanline_words;
++    int              left = info->accel_state->scanline_words;
+     volatile uint32_t *d;
+     ACCEL_PREAMBLE();
+ 
+-    if (info->scanline_direct) return;
++    if (info->accel_state->scanline_direct) return;
+ 
+-    --info->scanline_h;
++    --info->accel_state->scanline_h;
+ 
+     while (left) {
+ 	write_mem_barrier();
+ 	if (left <= 8) {
+ 	  /* Last scanline - finish write to DATA_LAST */
+-	  if (info->scanline_h == 0) {
++	  if (info->accel_state->scanline_h == 0) {
+ 	    BEGIN_ACCEL(left);
+ 				/* Unrolling doesn't improve performance */
+ 	    for (d = ADDRREG(RADEON_HOST_DATA_LAST) - (left - 1); left; --left)
+@@ -900,25 +900,25 @@ FUNC_NAME(RADEONSubsequentScanline)(ScrnInfoPtr pScrn,
+ 
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+     if (info->ChipFamily >= CHIP_FAMILY_R300) {
+-	if (info->scanline_bpp == 16) {
+-	    RADEONCopySwap(info->scratch_buffer[bufno],
+-			   info->scratch_buffer[bufno],
+-			   info->scanline_words << 2,
++	if (info->accel_state->scanline_bpp == 16) {
++	    RADEONCopySwap(info->accel_state->scratch_buffer[bufno],
++			   info->accel_state->scratch_buffer[bufno],
++			   info->accel_state->scanline_words << 2,
+ 			   RADEON_HOST_DATA_SWAP_HDW);
+-	} else if (info->scanline_bpp < 15) {
+-	    RADEONCopySwap(info->scratch_buffer[bufno],
+-			   info->scratch_buffer[bufno],
+-			   info->scanline_words << 2,
++	} else if (info->accel_state->scanline_bpp < 15) {
++	    RADEONCopySwap(info->accel_state->scratch_buffer[bufno],
++			   info->accel_state->scratch_buffer[bufno],
++			   info->accel_state->scanline_words << 2,
+ 			   RADEON_HOST_DATA_SWAP_32BIT);
+ 	}
+     }
+ #endif
+ 
+-    if (--info->scanline_hpass) {
+-	info->scratch_buffer[bufno] += 4 * info->scanline_words;
+-    } else if (info->scanline_h) {
+-	info->scanline_hpass =
+-	    min(info->scanline_h,(CP_BUFSIZE/info->scanline_words));
++    if (--info->accel_state->scanline_hpass) {
++	info->accel_state->scratch_buffer[bufno] += 4 * info->accel_state->scanline_words;
++    } else if (info->accel_state->scanline_h) {
++	info->accel_state->scanline_hpass =
++	    min(info->accel_state->scanline_h,(CP_BUFSIZE/info->accel_state->scanline_words));
+ 	RADEONCPScanlinePacket(pScrn, bufno);
+     }
+ 
+@@ -937,16 +937,16 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn,
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+     ACCEL_PREAMBLE();
+ 
+-    info->scanline_bpp = bpp;
++    info->accel_state->scanline_bpp = bpp;
+ 
+     /* Save for later clipping */
+-    info->dp_gui_master_cntl_clip = (info->dp_gui_master_cntl
+-				     | RADEON_GMC_DST_CLIPPING
+-				     | RADEON_GMC_BRUSH_NONE
+-				     | RADEON_GMC_SRC_DATATYPE_COLOR
+-				     | RADEON_ROP[rop].rop
+-				     | RADEON_GMC_BYTE_MSB_TO_LSB
+-				     | RADEON_DP_SRC_SOURCE_HOST_DATA);
++    info->accel_state->dp_gui_master_cntl_clip = (info->accel_state->dp_gui_master_cntl
++						  | RADEON_GMC_DST_CLIPPING
++						  | RADEON_GMC_BRUSH_NONE
++						  | RADEON_GMC_SRC_DATATYPE_COLOR
++						  | RADEON_ROP[rop].rop
++						  | RADEON_GMC_BYTE_MSB_TO_LSB
++						  | RADEON_DP_SRC_SOURCE_HOST_DATA);
+ 
+ #ifdef ACCEL_MMIO
+ 
+@@ -962,7 +962,7 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn,
+     else
+ 	OUT_ACCEL_REG(RADEON_RBBM_GUICNTL,   RADEON_HOST_DATA_SWAP_NONE);
+ #endif
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+ 
+ #else /* ACCEL_CP */
+ 
+@@ -984,7 +984,7 @@ FUNC_NAME(RADEONSetupForScanlineImageWrite)(ScrnInfoPtr pScrn,
+ 
+     FINISH_ACCEL();
+ 
+-    info->trans_color = trans_color;
++    info->accel_state->trans_color = trans_color;
+     FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color);
+ }
+ 
+@@ -1007,31 +1007,31 @@ FUNC_NAME(RADEONSubsequentScanlineImageWriteRect)(ScrnInfoPtr pScrn,
+     if (pScrn->bitsPerPixel == 8) shift = 3;
+     else if (pScrn->bitsPerPixel == 16) shift = 1;
+ 
+-    info->scanline_h      = h;
+-    info->scanline_words  = (w * info->scanline_bpp + 31) >> 5;
++    info->accel_state->scanline_h      = h;
++    info->accel_state->scanline_words  = (w * info->accel_state->scanline_bpp + 31) >> 5;
+ 
+ #ifdef __alpha__
+     /* Always use indirect for Alpha */
+     if (0)
+ #else
+-    if ((info->scanline_words * h) <= 9)
++    if ((info->accel_state->scanline_words * h) <= 9)
+ #endif
+     {
+ 	/* Turn on direct for less than 9 dword colour expansion */
+-	info->scratch_buffer[0]
++	info->accel_state->scratch_buffer[0]
+ 	    = (unsigned char *)(ADDRREG(RADEON_HOST_DATA_LAST)
+-				- (info->scanline_words - 1));
+-	info->scanline_direct = 1;
++				- (info->accel_state->scanline_words - 1));
++	info->accel_state->scanline_direct = 1;
+     } else {
+ 	/* Use indirect for anything else */
+-	info->scratch_buffer[0] = info->scratch_save;
+-	info->scanline_direct = 0;
++	info->accel_state->scratch_buffer[0] = info->accel_state->scratch_save;
++	info->accel_state->scanline_direct = 0;
+     }
+ 
+-    BEGIN_ACCEL(5 + (info->scanline_direct ?
+-		     (info->scanline_words * h) : 0));
++    BEGIN_ACCEL(5 + (info->accel_state->scanline_direct ?
++		     (info->accel_state->scanline_words * h) : 0));
+ 
+-    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->dst_pitch_offset |
++    OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, info->accel_state->dst_pitch_offset |
+     	((info->tilingEnabled && (y <= pScrn->virtualY)) ? RADEON_DST_TILE_MACRO : 0));
+     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,      (y << 16)     | ((x+skipleft)
+ 							    & 0xffff));
+@@ -1050,17 +1050,17 @@ FUNC_NAME(RADEONSubsequentScanlineImageWriteRect)(ScrnInfoPtr pScrn,
+     if (pScrn->bitsPerPixel == 8)       pad = 3;
+     else if (pScrn->bitsPerPixel == 16) pad = 1;
+ 
+-    info->scanline_x      = x;
+-    info->scanline_y      = y;
++    info->accel_state->scanline_x      = x;
++    info->accel_state->scanline_y      = y;
+     /* Have to pad the width here and use clipping engine */
+-    info->scanline_w      = (w + pad) & ~pad;
+-    info->scanline_h      = h;
++    info->accel_state->scanline_w      = (w + pad) & ~pad;
++    info->accel_state->scanline_h      = h;
+ 
+-    info->scanline_x1clip = x + skipleft;
+-    info->scanline_x2clip = x + w;
++    info->accel_state->scanline_x1clip = x + skipleft;
++    info->accel_state->scanline_x2clip = x + w;
+ 
+-    info->scanline_words  = (w * info->scanline_bpp + 31) / 32;
+-    info->scanline_hpass  = min(h,(CP_BUFSIZE/info->scanline_words));
++    info->accel_state->scanline_words  = (w * info->accel_state->scanline_bpp + 31) / 32;
++    info->accel_state->scanline_hpass  = min(h,(CP_BUFSIZE/info->accel_state->scanline_words));
+ 
+     RADEONCPScanlinePacket(pScrn, 0);
+ 
+@@ -1110,7 +1110,7 @@ FUNC_NAME(RADEONSetClippingRectangle)(ScrnInfoPtr pScrn,
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl_clip
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, (info->accel_state->dp_gui_master_cntl_clip
+ 					      | RADEON_GMC_DST_CLIPPING));
+     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,        tmp1);
+     OUT_ACCEL_REG(RADEON_SC_BOTTOM_RIGHT,    tmp2);
+@@ -1122,7 +1122,7 @@ FUNC_NAME(RADEONSetClippingRectangle)(ScrnInfoPtr pScrn,
+                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+     FINISH_ACCEL();
+ 
+-    FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color);
++    FUNC_NAME(RADEONSetTransparency)(pScrn, info->accel_state->trans_color);
+ }
+ 
+ /* Disable the clipping rectangle */
+@@ -1134,7 +1134,7 @@ FUNC_NAME(RADEONDisableClipping)(ScrnInfoPtr pScrn)
+ 
+     BEGIN_ACCEL(3);
+ 
+-    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->dp_gui_master_cntl_clip);
++    OUT_ACCEL_REG(RADEON_DP_GUI_MASTER_CNTL, info->accel_state->dp_gui_master_cntl_clip);
+     OUT_ACCEL_REG(RADEON_SC_TOP_LEFT,        0);
+     OUT_ACCEL_REG(RADEON_SC_BOTTOM_RIGHT,    (RADEON_DEFAULT_SC_RIGHT_MAX |
+ 					      RADEON_DEFAULT_SC_BOTTOM_MAX));
+@@ -1146,7 +1146,7 @@ FUNC_NAME(RADEONDisableClipping)(ScrnInfoPtr pScrn)
+                   RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+     FINISH_ACCEL();
+ 
+-    FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color);
++    FUNC_NAME(RADEONSetTransparency)(pScrn, info->accel_state->trans_color);
+ }
+ 
+ void
+@@ -1203,12 +1203,12 @@ FUNC_NAME(RADEONAccelInit)(ScreenPtr pScreen, XAAInfoRecPtr a)
+ 	   | ROP_NEEDS_SOURCE
+ 	   | LEFT_EDGE_CLIPPING_NEGATIVE_X);
+     a->NumScanlineColorExpandBuffers    = 1;
+-    a->ScanlineColorExpandBuffers       = info->scratch_buffer;
+-    if (!info->scratch_save)
+-	info->scratch_save
++    a->ScanlineColorExpandBuffers       = info->accel_state->scratch_buffer;
++    if (!info->accel_state->scratch_save)
++	info->accel_state->scratch_save
+ 	    = xalloc(((pScrn->virtualX+31)/32*4)
+ 		     + (pScrn->virtualX * info->CurrentLayout.pixel_bytes));
+-    info->scratch_buffer[0]             = info->scratch_save;
++    info->accel_state->scratch_buffer[0]             = info->accel_state->scratch_save;
+     a->SetupForScanlineCPUToScreenColorExpandFill
+ 	= FUNC_NAME(RADEONSetupForScanlineCPUToScreenColorExpandFill);
+     a->SubsequentScanlineCPUToScreenColorExpandFill
+@@ -1299,7 +1299,7 @@ FUNC_NAME(RADEONAccelInit)(ScreenPtr pScreen, XAAInfoRecPtr a)
+ 
+ 				/* ImageWrite */
+     a->NumScanlineImageWriteBuffers     = 1;
+-    a->ScanlineImageWriteBuffers        = info->scratch_buffer;
++    a->ScanlineImageWriteBuffers        = info->accel_state->scratch_buffer;
+     a->SetupForScanlineImageWrite
+ 	= FUNC_NAME(RADEONSetupForScanlineImageWrite);
+     a->SubsequentScanlineImageWriteRect
+diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
+index 20aa722..851014b 100644
+--- a/src/radeon_atombios.c
++++ b/src/radeon_atombios.c
+@@ -501,11 +501,11 @@ rhdAtomASICInit(atomBiosHandlePtr handle)
+     RHDAtomBiosFunc(handle->scrnIndex, handle,
+ 		    GET_DEFAULT_ENGINE_CLOCK,
+ 		    &data);
+-    asicInit.sASICInitClocks.ulDefaultEngineClock = data.val / 10;/*in 10 Khz*/
++    asicInit.sASICInitClocks.ulDefaultEngineClock = cpu_to_le32(data.val / 10);/*in 10 Khz*/
+     RHDAtomBiosFunc(handle->scrnIndex, handle,
+ 		    GET_DEFAULT_MEMORY_CLOCK,
+ 		    &data);
+-    asicInit.sASICInitClocks.ulDefaultMemoryClock = data.val / 10;/*in 10 Khz*/
++    asicInit.sASICInitClocks.ulDefaultMemoryClock = cpu_to_le32(data.val / 10);/*in 10 Khz*/
+     data.exec.dataSpace = NULL;
+     data.exec.index = 0x0;
+     data.exec.pspace = &asicInit;
+@@ -609,17 +609,6 @@ rhdAtomInit(atomBiosHandlePtr unused1, AtomBiosRequestID unused2,
+ #endif
+     handle->BIOSImageSize = BIOSImageSize;
+ 
+-# if ATOM_BIOS_PARSER
+-    /* Try to find out if BIOS has been posted (either by system or int10 */
+-    if (!rhdAtomGetFbBaseAndSize(handle, NULL, NULL)) {
+-	/* run AsicInit */
+-	if (!rhdAtomASICInit(handle))
+-	    xf86DrvMsg(scrnIndex, X_WARNING,
+-		       "%s: AsicInit failed. Won't be able to obtain in VRAM "
+-		       "FB scratch space\n",__func__);
+-    }
+-# endif
+-
+     data->atomhandle = handle;
+     return ATOM_SUCCESS;
+ 
+@@ -654,12 +643,18 @@ rhdAtomVramInfoQuery(atomBiosHandlePtr handle, AtomBiosRequestID func,
+ 
+     switch (func) {
+ 	case GET_FW_FB_START:
+-	    *val = le32_to_cpu(atomDataPtr->VRAM_UsageByFirmware
+-			       ->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware);
++	    if (atomDataPtr->VRAM_UsageByFirmware)
++		*val = le32_to_cpu(atomDataPtr->VRAM_UsageByFirmware
++				   ->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware);
++	    else
++		return ATOM_NOT_IMPLEMENTED;
+ 	    break;
+ 	case GET_FW_FB_SIZE:
+-	    *val =  le16_to_cpu(atomDataPtr->VRAM_UsageByFirmware
+-				->asFirmwareVramReserveInfo[0].usFirmwareUseInKb);
++	    if (atomDataPtr->VRAM_UsageByFirmware)
++		*val =  le16_to_cpu(atomDataPtr->VRAM_UsageByFirmware
++				    ->asFirmwareVramReserveInfo[0].usFirmwareUseInKb);
++	    else
++		return ATOM_NOT_IMPLEMENTED;
+ 	    break;
+ 	default:
+ 	    return ATOM_NOT_IMPLEMENTED;
+@@ -1391,35 +1386,57 @@ const int object_connector_convert[] =
+       CONNECTOR_DISPLAY_PORT,
+     };
+ 
+-static void
+-rhdAtomParseI2CRecord(atomBiosHandlePtr handle,
+-			ATOM_I2C_RECORD *Record, int *ddc_line)
++xf86MonPtr radeon_atom_get_edid(xf86OutputPtr output)
+ {
+-    ErrorF(" %s:  I2C Record: %s[%x] EngineID: %x I2CAddr: %x\n",
+-	     __func__,
+-	     Record->sucI2cId.bfHW_Capable ? "HW_Line" : "GPIO_ID",
+-	     Record->sucI2cId.bfI2C_LineMux,
+-	     Record->sucI2cId.bfHW_EngineID,
+-	     Record->ucI2CAddr);
+-
+-    if (!*(unsigned char *)&(Record->sucI2cId))
+-	*ddc_line = 0;
+-    else {
+-	if (Record->ucI2CAddr != 0)
+-	    return;
+-
+-	if (Record->sucI2cId.bfHW_Capable) {
+-	    switch(Record->sucI2cId.bfI2C_LineMux) {
+-	    case 0: *ddc_line = 0x7e40; break;
+-	    case 1: *ddc_line = 0x7e50; break;
+-	    case 2: *ddc_line = 0x7e30; break;
+-	    default: break;
+-	    }
+-	    return;
+-	} else {
+-	    /* add GPIO pin parsing */
+-	}
+-    }
++    RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr info       = RADEONPTR(output->scrn);
++    READ_EDID_FROM_HW_I2C_DATA_PS_ALLOCATION edid_data;
++    AtomBiosArgRec data;
++    unsigned char *space;
++    int i2c_clock = 50;
++    int engine_clk = info->sclk * 100;
++    int prescale;
++    unsigned char *edid;
++    xf86MonPtr mon = NULL;
++
++    if (!radeon_output->ddc_i2c.hw_capable)
++	return mon;
++
++    if (info->atomBIOS->fbBase)
++	edid = (unsigned char *)info->FB + info->atomBIOS->fbBase;
++    else if (info->atomBIOS->scratchBase)
++	edid = (unsigned char *)info->atomBIOS->scratchBase;
++    else
++	return mon;
++
++    memset(edid, 0, ATOM_EDID_RAW_DATASIZE);
++
++    if (info->ChipFamily == CHIP_FAMILY_R520)
++	prescale = (127 << 8) + (engine_clk * 10) / (4 * 127 * i2c_clock);
++    else if (info->ChipFamily < CHIP_FAMILY_R600)
++	prescale = (((engine_clk * 10)/(4 * 128 * 100) + 1) << 8) + 128;
++    else
++	prescale = (info->pll.reference_freq * 10) / i2c_clock;
++
++    edid_data.usPrescale = prescale;
++    edid_data.usVRAMAddress = 0;
++    edid_data.ucSlaveAddr = 0xa0;
++    edid_data.ucLineNumber = radeon_output->ddc_i2c.hw_line;
++
++    data.exec.index = GetIndexIntoMasterTable(COMMAND, ReadEDIDFromHWAssistedI2C);
++    data.exec.dataSpace = (void *)&space;
++    data.exec.pspace = &edid_data;
++
++    if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS)
++	ErrorF("Atom Get EDID success\n");
++    else
++	ErrorF("Atom Get EDID failed\n");
++
++    if (edid[1] == 0xff)
++	mon = xf86InterpretEDID(output->scrn->scrnIndex, edid);
++
++    return mon;
++
+ }
+ 
+ static RADEONI2CBusRec
+@@ -1450,36 +1467,53 @@ RADEONLookupGPIOLineForDDC(ScrnInfoPtr pScrn, uint8_t id)
+     i2c.put_data_reg = le16_to_cpu(gpio.usDataEnRegisterIndex) * 4;
+     i2c.get_clk_reg = le16_to_cpu(gpio.usClkY_RegisterIndex) * 4;
+     i2c.get_data_reg = le16_to_cpu(gpio.usDataY_RegisterIndex) * 4;
++    i2c.a_clk_reg = le16_to_cpu(gpio.usClkA_RegisterIndex) * 4;
++    i2c.a_data_reg = le16_to_cpu(gpio.usDataA_RegisterIndex) * 4;
+     i2c.mask_clk_mask = (1 << gpio.ucClkMaskShift);
+     i2c.mask_data_mask = (1 << gpio.ucDataMaskShift);
+     i2c.put_clk_mask = (1 << gpio.ucClkEnShift);
+     i2c.put_data_mask = (1 << gpio.ucDataEnShift);
+     i2c.get_clk_mask = (1 << gpio.ucClkY_Shift);
+     i2c.get_data_mask = (1 <<  gpio.ucDataY_Shift);
++    i2c.a_clk_mask = (1 << gpio.ucClkA_Shift);
++    i2c.a_data_mask = (1 <<  gpio.ucDataA_Shift);
++    i2c.hw_line = gpio.sucI2cId.sbfAccess.bfI2C_LineMux;
++    i2c.hw_capable = gpio.sucI2cId.sbfAccess.bfHW_Capable;
+     i2c.valid = TRUE;
+ 
+ #if 0
++    ErrorF("id: %d\n", id);
++    ErrorF("hw capable: %d\n", gpio.sucI2cId.sbfAccess.bfHW_Capable);
++    ErrorF("hw engine id: %d\n", gpio.sucI2cId.sbfAccess.bfHW_EngineID);
++    ErrorF("line mux %d\n", gpio.sucI2cId.sbfAccess.bfI2C_LineMux);
+     ErrorF("mask_clk_reg: 0x%x\n", gpio.usClkMaskRegisterIndex * 4);
+     ErrorF("mask_data_reg: 0x%x\n", gpio.usDataMaskRegisterIndex * 4);
+     ErrorF("put_clk_reg: 0x%x\n", gpio.usClkEnRegisterIndex * 4);
+     ErrorF("put_data_reg: 0x%x\n", gpio.usDataEnRegisterIndex * 4);
+     ErrorF("get_clk_reg: 0x%x\n", gpio.usClkY_RegisterIndex * 4);
+     ErrorF("get_data_reg: 0x%x\n", gpio.usDataY_RegisterIndex * 4);
+-    ErrorF("other_clk_reg: 0x%x\n", gpio.usClkA_RegisterIndex * 4);
+-    ErrorF("other_data_reg: 0x%x\n", gpio.usDataA_RegisterIndex * 4);
++    ErrorF("a_clk_reg: 0x%x\n", gpio.usClkA_RegisterIndex * 4);
++    ErrorF("a_data_reg: 0x%x\n", gpio.usDataA_RegisterIndex * 4);
+     ErrorF("mask_clk_mask: %d\n", gpio.ucClkMaskShift);
+     ErrorF("mask_data_mask: %d\n", gpio.ucDataMaskShift);
+     ErrorF("put_clk_mask: %d\n", gpio.ucClkEnShift);
+     ErrorF("put_data_mask: %d\n", gpio.ucDataEnShift);
+     ErrorF("get_clk_mask: %d\n", gpio.ucClkY_Shift);
+     ErrorF("get_data_mask: %d\n", gpio.ucDataY_Shift);
+-    ErrorF("other_clk_mask: %d\n", gpio.ucClkA_Shift);
+-    ErrorF("other_data_mask: %d\n", gpio.ucDataA_Shift);
++    ErrorF("a_clk_mask: %d\n", gpio.ucClkA_Shift);
++    ErrorF("a_data_mask: %d\n", gpio.ucDataA_Shift);
+ #endif
+ 
+     return i2c;
+ }
+ 
++static RADEONI2CBusRec
++rhdAtomParseI2CRecord(ScrnInfoPtr pScrn, atomBiosHandlePtr handle,
++			ATOM_I2C_RECORD *Record)
++{
++    return RADEONLookupGPIOLineForDDC(pScrn, Record->sucI2cId.bfI2C_LineMux);
++}
++
+ Bool
+ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+ {
+@@ -1489,7 +1523,7 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+     atomDataTablesPtr atomDataPtr;
+     ATOM_CONNECTOR_OBJECT_TABLE *con_obj;
+     ATOM_INTEGRATED_SYSTEM_INFO_V2 *igp_obj = NULL;
+-    int i, j, ddc_line = 0;
++    int i, j;
+ 
+     atomDataPtr = info->atomBIOS->atomDataPtr;
+     if (!rhdAtomGetTableRevisionAndSize((ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->Object_Header), &crev, &frev, &size))
+@@ -1560,15 +1594,23 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+ 		break;
+ 	    case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
+ 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
+-		info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
+-		info->BiosConnector[i].TMDSType = TMDS_INT;
++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
++		else {
++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
++		    info->BiosConnector[i].TMDSType = TMDS_INT;
++		}
+ 		break;
+ 	    case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
+-		if (num == 1)
+-		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
+-		else
+-		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX);
+-		info->BiosConnector[i].TMDSType = TMDS_UNIPHY;
++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
++		else {
++		    if (num == 1)
++			info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
++		    else
++			info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX);
++		    info->BiosConnector[i].TMDSType = TMDS_UNIPHY;
++		}
+ 		break;
+ 	    case ENCODER_OBJECT_ID_INTERNAL_TMDS2:
+ 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
+@@ -1577,8 +1619,12 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+ 		break;
+ 	    case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
+ 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
+-		info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX);
+-		info->BiosConnector[i].TMDSType = TMDS_LVTMA;
++		if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
++		else {
++		    info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX);
++		    info->BiosConnector[i].TMDSType = TMDS_LVTMA;
++		}
+ 		break;
+ 	    case ENCODER_OBJECT_ID_INTERNAL_DAC1:
+ 	    case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
+@@ -1617,10 +1663,8 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+ 	    ErrorF("record type %d\n", Record->ucRecordType);
+ 	    switch (Record->ucRecordType) {
+ 		case ATOM_I2C_RECORD_TYPE:
+-		    rhdAtomParseI2CRecord(info->atomBIOS,
+-					  (ATOM_I2C_RECORD *)Record,
+-					  &ddc_line);
+-		    info->BiosConnector[i].ddc_i2c = atom_setup_i2c_bus(ddc_line);
++		    info->BiosConnector[i].ddc_i2c = rhdAtomParseI2CRecord(pScrn, info->atomBIOS,
++									   (ATOM_I2C_RECORD *)Record);
+ 		    break;
+ 		case ATOM_HPD_INT_RECORD_TYPE:
+ 		    break;
+@@ -1636,6 +1680,71 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
+ }
+ 
+ Bool
++RADEONGetATOMLVDSInfo(xf86OutputPtr output)
++{
++    ScrnInfoPtr pScrn = output->scrn;
++    RADEONInfoPtr  info       = RADEONPTR(pScrn);
++    RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    atomDataTablesPtr atomDataPtr;
++    uint8_t crev, frev;
++
++    atomDataPtr = info->atomBIOS->atomDataPtr;
++
++    if (!rhdAtomGetTableRevisionAndSize(
++	    (ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->LVDS_Info.base),
++	    &frev,&crev,NULL)) {
++	return FALSE;
++    }
++
++    switch (crev) {
++    case 1:
++	radeon_output->PanelXRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHActive);
++	radeon_output->PanelYRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVActive);
++	radeon_output->DotClock   = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usPixClk) * 10;
++	radeon_output->HBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHBlanking_Time);
++	radeon_output->HOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHSyncOffset);
++	radeon_output->HSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usHSyncWidth);
++	radeon_output->VBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVBlanking_Time);
++	radeon_output->VOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVSyncOffset);
++	radeon_output->VSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->sLCDTiming.usVSyncWidth);
++	radeon_output->PanelPwrDly = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info->usOffDelayInMs);
++	radeon_output->lvds_misc   =  atomDataPtr->LVDS_Info.LVDS_Info->ucLVDS_Misc;
++	radeon_output->lvds_ss_id  =  atomDataPtr->LVDS_Info.LVDS_Info->ucSS_Id;
++	break;
++    case 2:
++	radeon_output->PanelXRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHActive);
++	radeon_output->PanelYRes = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVActive);
++	radeon_output->DotClock   = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usPixClk) * 10;
++	radeon_output->HBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHBlanking_Time);
++	radeon_output->HOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHSyncOffset);
++	radeon_output->HSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usHSyncWidth);
++	radeon_output->VBlank     = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVBlanking_Time);
++	radeon_output->VOverPlus  = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVSyncOffset);
++	radeon_output->VSyncWidth = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->sLCDTiming.usVSyncWidth);
++	radeon_output->PanelPwrDly = le16_to_cpu(atomDataPtr->LVDS_Info.LVDS_Info_v12->usOffDelayInMs);
++	radeon_output->lvds_misc   =  atomDataPtr->LVDS_Info.LVDS_Info_v12->ucLVDS_Misc;
++	radeon_output->lvds_ss_id  =  atomDataPtr->LVDS_Info.LVDS_Info_v12->ucSS_Id;
++	break;
++    }
++
++    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0)
++	radeon_output->PanelPwrDly = 2000;
++
++    radeon_output->Flags = 0;
++
++    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
++	       "LVDS Info:\n"
++	       "XRes: %d, YRes: %d, DotClock: %d\n"
++	       "HBlank: %d, HOverPlus: %d, HSyncWidth: %d\n"
++	       "VBlank: %d, VOverPlus: %d, VSyncWidth: %d\n",
++	       radeon_output->PanelXRes, radeon_output->PanelYRes, radeon_output->DotClock,
++	       radeon_output->HBlank, radeon_output->HOverPlus, radeon_output->HSyncWidth,
++	       radeon_output->VBlank, radeon_output->VOverPlus, radeon_output->VSyncWidth);
++
++    return TRUE;
++}
++
++Bool
+ RADEONGetATOMTVInfo(xf86OutputPtr output)
+ {
+     ScrnInfoPtr pScrn = output->scrn;
+@@ -1751,6 +1860,30 @@ static void RADEONApplyATOMQuirks(ScrnInfoPtr pScrn, int index)
+ 	}
+     }
+ 
++    /* Falcon NW laptop lists vga ddc line for LVDS */
++    if ((info->Chipset == PCI_CHIP_RV410_5653) &&
++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1462) &&
++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0291)) {
++	if (info->BiosConnector[index].ConnectorType == CONNECTOR_LVDS) {
++	    info->BiosConnector[index].ddc_i2c.valid = FALSE;
++	}
++    }
++
++    /* Funky macbooks */
++    if ((info->Chipset == PCI_CHIP_RV530_71C5) &&
++	(PCI_SUB_VENDOR_ID(info->PciInfo) == 0x106b) &&
++	(PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0080)) {
++	if ((index == ATOM_DEVICE_CRT1_INDEX) ||
++	    (index == ATOM_DEVICE_CRT2_INDEX) ||
++	    (index == ATOM_DEVICE_DFP2_INDEX))
++	    info->BiosConnector[index].valid = FALSE;
++
++	if (index == ATOM_DEVICE_DFP1_INDEX) {
++	    info->BiosConnector[index].DACType = DAC_TVDAC;
++	    info->BiosConnector[index].devices |= (1 << ATOM_DEVICE_CRT2_INDEX);
++	}
++    }
++
+ }
+ 
+ Bool
+@@ -2027,9 +2160,12 @@ RHDAtomBiosFunc(int scrnIndex, atomBiosHandlePtr handle,
+ VOID*
+ CailAllocateMemory(VOID *CAIL,UINT16 size)
+ {
++    void *ret;
+     CAILFUNC(CAIL);
+ 
+-    return malloc(size);
++    ret = malloc(size);
++    memset(ret, 0, size);
++    return ret;
+ }
+ 
+ VOID
+@@ -2256,4 +2392,15 @@ atombios_get_command_table_version(atomBiosHandlePtr atomBIOS, int index, int *m
+ }
+ 
+ 
++UINT16 ATOM_BSWAP16(UINT16 x)
++{
++    return bswap_16(x);
++}
++
++UINT32 ATOM_BSWAP32(UINT32 x)
++{
++    return bswap_32(x);
++}
++
++
+ #endif /* ATOM_BIOS */
+diff --git a/src/radeon_atombios.h b/src/radeon_atombios.h
+index fe7044d..fbe8dd5 100644
+--- a/src/radeon_atombios.h
++++ b/src/radeon_atombios.h
+@@ -125,12 +125,18 @@ atombios_static_pwrmgt_setup(ScrnInfoPtr pScrn, int enable);
+ extern Bool
+ RADEONGetATOMTVInfo(xf86OutputPtr output);
+ 
++extern Bool
++RADEONGetATOMLVDSInfo(xf86OutputPtr output);
++
+ extern int
+ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode);
+ 
+ extern void
+ atombios_get_command_table_version(atomBiosHandlePtr atomBIOS, int index, int *major, int *minor);
+ 
++extern xf86MonPtr
++radeon_atom_get_edid(xf86OutputPtr output);
++
+ Bool
+ rhdAtomASICInit(atomBiosHandlePtr handle);
+ 
+diff --git a/src/radeon_atomwrapper.c b/src/radeon_atomwrapper.c
+index 3e7ae01..bed1471 100644
+--- a/src/radeon_atomwrapper.c
++++ b/src/radeon_atomwrapper.c
+@@ -31,6 +31,7 @@
+ 
+ #define INT32 INT32
+ #include "CD_Common_Types.h"
++#include "atombios.h"
+ #include "CD_Definitions.h"
+ 
+ 
+diff --git a/src/radeon_bios.c b/src/radeon_bios.c
+index 529dda7..22bb5ed 100644
+--- a/src/radeon_bios.c
++++ b/src/radeon_bios.c
+@@ -266,6 +266,26 @@ radeon_read_unposted_bios(ScrnInfoPtr pScrn)
+     return ret;
+ }
+ 
++Bool
++radeon_card_posted(ScrnInfoPtr pScrn)
++{
++    RADEONInfoPtr info     = RADEONPTR(pScrn);
++    unsigned char *RADEONMMIO = info->MMIO;
++    uint32_t reg;
++
++    if (IS_AVIVO_VARIANT) {
++	reg = INREG(AVIVO_D1CRTC_CONTROL) | INREG(AVIVO_D2CRTC_CONTROL);
++	if (reg & AVIVO_CRTC_EN)
++	    return TRUE;
++    } else {
++	reg = INREG(RADEON_CRTC_GEN_CNTL) | INREG(RADEON_CRTC2_GEN_CNTL);
++	if (reg & RADEON_CRTC_EN)
++	    return TRUE;
++    }
++
++    return FALSE;
++}
++
+ /* Read the Video BIOS block and the FP registers (if applicable). */
+ Bool
+ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
+@@ -273,6 +293,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
+     RADEONInfoPtr info     = RADEONPTR(pScrn);
+     int tmp;
+     unsigned short dptr;
++    Bool posted = TRUE;
+ 
+ #ifdef XSERVER_LIBPCIACCESS
+     int size = info->PciInfo->rom_size > RADEON_VBIOS_SIZE ? info->PciInfo->rom_size : RADEON_VBIOS_SIZE;
+@@ -291,6 +312,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
+ 			 RADEON_VBIOS_SIZE);
+ 	} else if (!radeon_read_bios(pScrn)) {
+ 	    (void)radeon_read_unposted_bios(pScrn);
++	    posted = FALSE;
+ 	}
+     }
+ 
+@@ -326,7 +348,7 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
+ 	info->VBIOS = NULL;
+ 	return FALSE;
+     }
+- 
++
+     tmp = info->ROMHeaderStart + 4;
+     if ((RADEON_BIOS8(tmp)   == 'A' &&
+ 	 RADEON_BIOS8(tmp+1) == 'T' &&
+@@ -344,51 +366,65 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
+ 	       info->IsAtomBios ? "ATOM":"Legacy");
+ 
+     if (info->IsAtomBios) {
+-        AtomBiosArgRec atomBiosArg;
++	AtomBiosArgRec atomBiosArg;
+ 
+-        if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOMBIOS_INIT, &atomBiosArg)
+-            == ATOM_SUCCESS) {
+-            info->atomBIOS = atomBiosArg.atomhandle;
+-        }
++	if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOMBIOS_INIT, &atomBiosArg)
++	    == ATOM_SUCCESS) {
++	    info->atomBIOS = atomBiosArg.atomhandle;
++	}
+ 
+-        atomBiosArg.fb.start = info->FbFreeStart;
+-        atomBiosArg.fb.size = info->FbFreeSize;
+-        if (RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ATOMBIOS_ALLOCATE_FB_SCRATCH,
++	atomBiosArg.fb.start = info->FbFreeStart;
++	atomBiosArg.fb.size = info->FbFreeSize;
++	if (RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, ATOMBIOS_ALLOCATE_FB_SCRATCH,
+ 			    &atomBiosArg) == ATOM_SUCCESS) {
+ 
+ 	    info->FbFreeStart = atomBiosArg.fb.start;
+ 	    info->FbFreeSize = atomBiosArg.fb.size;
+-        }
+-
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_ENGINE_CLOCK,
+-                        &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_MEMORY_CLOCK,
+-                        &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+-                        GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+-                        GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+-                        GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++	}
++
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_ENGINE_CLOCK,
++			&atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS, GET_DEFAULT_MEMORY_CLOCK,
++			&atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++			GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++			GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++			GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+ 			GET_MIN_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+ 			GET_MAX_PIXEL_CLK, &atomBiosArg);
+-        RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
+-                        GET_REF_CLOCK, &atomBiosArg);
++	RHDAtomBiosFunc(pScrn->scrnIndex, info->atomBIOS,
++			GET_REF_CLOCK, &atomBiosArg);
+ 
+ 	info->MasterDataStart = RADEON_BIOS16 (info->ROMHeaderStart + 32);
+     }
++
++    /* We are a bit too quick at using this "unposted" to re-post the
++     * card. This causes some problems with VT switch on some machines,
++     * so let's work around this for now by only POSTing if none of the
++     * CRTCs are enabled
++     */
++    if ((!posted) && info->VBIOS) {
++	posted = radeon_card_posted(pScrn);
++    }
++
++    if ((!posted) && info->VBIOS) {
++	if (info->IsAtomBios) {
++	    if (!rhdAtomASICInit(info->atomBIOS))
++		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
++			   "%s: AsicInit failed.\n",__func__);
++	} else {
+ #if 0
+-    else {
+-	/* non-primary card may need posting */
+-	if (!pInt10) {
+-	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Attempting to POST via BIOS tables\n");
++	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Attempting to POST via legacy BIOS tables\n");
+ 	    RADEONGetBIOSInitTableOffsets(pScrn);
+ 	    RADEONPostCardFromBIOSTables(pScrn);
++#endif
+ 	}
+     }
+-#endif
++
+     return TRUE;
+ }
+ 
+@@ -397,7 +433,7 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+     RADEONInfoPtr info = RADEONPTR (pScrn);
+ 
+     if (!info->VBIOS) return FALSE;
+-    
++
+     if (RADEONGetATOMConnectorInfoFromBIOSObject(pScrn))
+ 	return TRUE;
+ 
+@@ -411,28 +447,41 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index)
+ {
+     RADEONInfoPtr info = RADEONPTR (pScrn);
+ 
+-    /* on XPRESS chips, CRT2_DDC and MONID_DCC both use the 
+-     * MONID gpio, but use different pins.
+-     * CRT2_DDC uses the standard pinout, MONID_DDC uses
+-     * something else.
++    /* For RS300/RS350/RS400 chips, there is no primary DAC. Force VGA port to use TVDAC
++     * Also there is no internal TMDS
+      */
++    if ((info->ChipFamily == CHIP_FAMILY_RS300) ||
++	(info->ChipFamily == CHIP_FAMILY_RS400) ||
++	(info->ChipFamily == CHIP_FAMILY_RS480)) {
++	info->BiosConnector[index].DACType = DAC_TVDAC;
++	info->BiosConnector[index].TMDSType = TMDS_EXT;
++    }
++
++    /* XPRESS DDC quirks */
+     if ((info->ChipFamily == CHIP_FAMILY_RS400 ||
+ 	 info->ChipFamily == CHIP_FAMILY_RS480) &&
+-	info->BiosConnector[index].ConnectorType == CONNECTOR_VGA &&
+ 	info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_CRT2_DDC) {
+ 	info->BiosConnector[index].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_MONID);
+-    }
+-
+-    /* XPRESS desktop chips seem to have a proprietary connector listed for
+-     * DVI-D, try and do the right thing here.
+-     */
+-    if ((!info->IsMobility) &&
+-	(info->BiosConnector[index].ConnectorType == CONNECTOR_LVDS)) {
+-	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+-		   "Proprietary connector found, assuming DVI-D\n");
+-	info->BiosConnector[index].DACType = DAC_NONE;
+-	info->BiosConnector[index].TMDSType = TMDS_EXT;
+-	info->BiosConnector[index].ConnectorType = CONNECTOR_DVI_D;
++    } else if ((info->ChipFamily == CHIP_FAMILY_RS400 ||
++		info->ChipFamily == CHIP_FAMILY_RS480) &&
++	       info->BiosConnector[index].ddc_i2c.mask_clk_reg == RADEON_GPIO_MONID) {
++	info->BiosConnector[index].ddc_i2c.valid = TRUE;
++	info->BiosConnector[index].ddc_i2c.mask_clk_mask = (0x20 << 8);
++	info->BiosConnector[index].ddc_i2c.mask_data_mask = 0x80;
++	info->BiosConnector[index].ddc_i2c.a_clk_mask = (0x20 << 8);
++	info->BiosConnector[index].ddc_i2c.a_data_mask = 0x80;
++	info->BiosConnector[index].ddc_i2c.put_clk_mask = (0x20 << 8);
++	info->BiosConnector[index].ddc_i2c.put_data_mask = 0x80;
++	info->BiosConnector[index].ddc_i2c.get_clk_mask = (0x20 << 8);
++	info->BiosConnector[index].ddc_i2c.get_data_mask = 0x80;
++	info->BiosConnector[index].ddc_i2c.mask_clk_reg = RADEON_GPIOPAD_MASK;
++	info->BiosConnector[index].ddc_i2c.mask_data_reg = RADEON_GPIOPAD_MASK;
++	info->BiosConnector[index].ddc_i2c.a_clk_reg = RADEON_GPIOPAD_A;
++	info->BiosConnector[index].ddc_i2c.a_data_reg = RADEON_GPIOPAD_A;
++	info->BiosConnector[index].ddc_i2c.put_clk_reg = RADEON_GPIOPAD_EN;
++	info->BiosConnector[index].ddc_i2c.put_data_reg = RADEON_GPIOPAD_EN;
++	info->BiosConnector[index].ddc_i2c.get_clk_reg = RADEON_LCD_GPIO_Y_REG;
++	info->BiosConnector[index].ddc_i2c.get_data_reg = RADEON_LCD_GPIO_Y_REG;
+     }
+ 
+     /* Certain IBM chipset RN50s have a BIOS reporting two VGAs,
+@@ -454,6 +503,16 @@ static void RADEONApplyLegacyQuirks(ScrnInfoPtr pScrn, int index)
+ 	}
+     }
+ 
++    /* X300 card with extra non-existent DVI port */
++    if (info->Chipset == PCI_CHIP_RV370_5B60 &&
++	PCI_SUB_VENDOR_ID(info->PciInfo) == 0x17af &&
++	PCI_SUB_DEVICE_ID(info->PciInfo) == 0x201e &&
++	index == 2) {
++	if (info->BiosConnector[index].ConnectorType == CONNECTOR_DVI_I) {
++	    info->BiosConnector[index].valid = FALSE;
++	}
++    }
++
+ }
+ 
+ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+@@ -479,7 +538,7 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ 	    ConnectorType = (tmp >> 12) & 0xf;
+ 	    switch (ConnectorType) {
+ 	    case CONNECTOR_PROPRIETARY_LEGACY:
+-		info->BiosConnector[i].ConnectorType = CONNECTOR_LVDS;
++		info->BiosConnector[i].ConnectorType = CONNECTOR_DVI_D;
+ 		break;
+ 	    case CONNECTOR_CRT_LEGACY:
+ 		info->BiosConnector[i].ConnectorType = CONNECTOR_VGA;
+@@ -528,10 +587,6 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ 	    else
+ 		info->BiosConnector[i].DACType = DAC_PRIMARY;
+ 
+-	    /* For RS300/RS350/RS400 chips, there is no primary DAC. Force VGA port to use TVDAC*/
+-	    if (info->IsIGP)
+-		info->BiosConnector[i].DACType = DAC_TVDAC;
+-
+ 	    if ((tmp >> 4) & 0x1)
+ 		info->BiosConnector[i].TMDSType = TMDS_EXT;
+ 	    else
+@@ -560,7 +615,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+     }
+ 
+     /* check LVDS table */
+-    if (info->IsMobility) {
++    /* RS4xx can be mobile or desktop so check the connectors */
++    if (info->IsMobility ||
++	info->ChipFamily == CHIP_FAMILY_RS400 ||
++	info->ChipFamily == CHIP_FAMILY_RS480) {
+ 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x40);
+ 	if (offset) {
+ 	    info->BiosConnector[4].valid = TRUE;
+@@ -591,10 +649,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ 			    break;
+ 			case DDC_LCD:
+ 			    info->BiosConnector[4].ddc_i2c = legacy_setup_i2c_bus(RADEON_LCD_GPIO_MASK);
+-			    info->BiosConnector[4].ddc_i2c.mask_clk_mask =
+-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07);
+-			    info->BiosConnector[4].ddc_i2c.mask_data_mask =
+-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07);
++			    info->BiosConnector[4].ddc_i2c.mask_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
++			    info->BiosConnector[4].ddc_i2c.mask_data_mask = RADEON_BIOS32(tmp0 + 0x07);
++			    info->BiosConnector[4].ddc_i2c.a_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
++			    info->BiosConnector[4].ddc_i2c.a_data_mask = RADEON_BIOS32(tmp0 + 0x07);
+ 			    info->BiosConnector[4].ddc_i2c.put_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
+ 			    info->BiosConnector[4].ddc_i2c.put_data_mask = RADEON_BIOS32(tmp0 + 0x07);
+ 			    info->BiosConnector[4].ddc_i2c.get_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
+@@ -602,10 +660,10 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
+ 			    break;
+ 			case DDC_GPIO:
+ 			    info->BiosConnector[4].ddc_i2c = legacy_setup_i2c_bus(RADEON_MDGPIO_EN_REG);
+-			    info->BiosConnector[4].ddc_i2c.mask_clk_mask =
+-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07);
+-			    info->BiosConnector[4].ddc_i2c.mask_data_mask =
+-				RADEON_BIOS32(tmp0 + 0x03) | RADEON_BIOS32(tmp0 + 0x07);
++			    info->BiosConnector[4].ddc_i2c.mask_clk_mask =  RADEON_BIOS32(tmp0 + 0x03);
++			    info->BiosConnector[4].ddc_i2c.mask_data_mask = RADEON_BIOS32(tmp0 + 0x07);
++			    info->BiosConnector[4].ddc_i2c.a_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
++			    info->BiosConnector[4].ddc_i2c.a_data_mask = RADEON_BIOS32(tmp0 + 0x07);
+ 			    info->BiosConnector[4].ddc_i2c.put_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
+ 			    info->BiosConnector[4].ddc_i2c.put_data_mask = RADEON_BIOS32(tmp0 + 0x07);
+ 			    info->BiosConnector[4].ddc_i2c.get_clk_mask = RADEON_BIOS32(tmp0 + 0x03);
+@@ -917,30 +975,9 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86OutputPtr output)
+ 
+     if (!info->VBIOS) return FALSE;
+ 
+-    if (info->IsAtomBios) {
+-	if((tmp = RADEON_BIOS16 (info->MasterDataStart + 16))) {
+-
+-	    radeon_output->PanelXRes = RADEON_BIOS16(tmp+6);
+-	    radeon_output->PanelYRes = RADEON_BIOS16(tmp+10);
+-	    radeon_output->DotClock   = RADEON_BIOS16(tmp+4)*10;
+-	    radeon_output->HBlank     = RADEON_BIOS16(tmp+8);
+-	    radeon_output->HOverPlus  = RADEON_BIOS16(tmp+14);
+-	    radeon_output->HSyncWidth = RADEON_BIOS16(tmp+16);
+-	    radeon_output->VBlank     = RADEON_BIOS16(tmp+12);
+-	    radeon_output->VOverPlus  = RADEON_BIOS16(tmp+18);
+-	    radeon_output->VSyncWidth = RADEON_BIOS16(tmp+20);
+-	    radeon_output->PanelPwrDly = RADEON_BIOS16(tmp+40);
+-
+-	    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0)
+-		radeon_output->PanelPwrDly = 2000;
+-
+-	    radeon_output->Flags = 0;
+-	} else {
+-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+-		       "No LVDS Info Table found in BIOS!\n");
+-	    return FALSE;
+-	}
+-    } else {
++    if (info->IsAtomBios)
++	return RADEONGetATOMLVDSInfo(output);
++    else {
+ 
+ 	tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x40);
+ 
+@@ -963,7 +1000,7 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86OutputPtr output)
+ 	    radeon_output->PanelYRes = RADEON_BIOS16(tmp+27);
+ 	    xf86DrvMsg(0, X_INFO, "Panel Size from BIOS: %dx%d\n",
+ 		       radeon_output->PanelXRes, radeon_output->PanelYRes);
+-	
++
+ 	    radeon_output->PanelPwrDly = RADEON_BIOS16(tmp+44);
+ 	    if (radeon_output->PanelPwrDly > 2000 || radeon_output->PanelPwrDly < 0)
+ 		radeon_output->PanelPwrDly = 2000;
+@@ -1118,6 +1155,50 @@ Bool RADEONGetTMDSInfoFromBIOS (xf86OutputPtr output)
+     return FALSE;
+ }
+ 
++static RADEONI2CBusRec
++RADEONLookupI2CBlock(ScrnInfoPtr pScrn, int id)
++{
++    RADEONInfoPtr info = RADEONPTR (pScrn);
++    int offset, blocks, i;
++    RADEONI2CBusRec i2c;
++
++    memset(&i2c, 0, sizeof(RADEONI2CBusRec));
++    i2c.valid = FALSE;
++
++    offset = RADEON_BIOS16(info->ROMHeaderStart + 0x70);
++    if (offset) {
++	blocks = RADEON_BIOS8(offset + 2);
++	for (i = 0; i < blocks; i++) {
++	    int i2c_id = RADEON_BIOS8(offset + 3 + (i * 5) + 0);
++	    if (id == i2c_id) {
++		int reg = RADEON_BIOS16(offset + 3 + (i * 5) + 1) * 4;
++		int clock_shift = RADEON_BIOS8(offset + 3 + (i * 5) + 3);
++		int data_shift = RADEON_BIOS8(offset + 3 + (i * 5) + 4);
++
++		i2c.mask_clk_mask = (1 << clock_shift);
++		i2c.mask_data_mask = (1 << data_shift);
++		i2c.a_clk_mask = (1 << clock_shift);
++		i2c.a_data_mask = (1 << data_shift);
++		i2c.put_clk_mask = (1 << clock_shift);
++		i2c.put_data_mask = (1 << data_shift);
++		i2c.get_clk_mask = (1 << clock_shift);
++		i2c.get_data_mask = (1 << data_shift);
++		i2c.mask_clk_reg = reg;
++		i2c.mask_data_reg = reg;
++		i2c.a_clk_reg = reg;
++		i2c.a_data_reg = reg;
++		i2c.put_clk_reg = reg;
++		i2c.put_data_reg = reg;
++		i2c.get_clk_reg = reg;
++		i2c.get_data_reg = reg;
++		i2c.valid = TRUE;
++		break;
++	    }
++	}
++    }
++    return i2c;
++}
++
+ Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output)
+ {
+     ScrnInfoPtr pScrn = output->scrn;
+@@ -1129,6 +1210,52 @@ Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output)
+ 
+     if (info->IsAtomBios) {
+ 	return FALSE;
++    } else if (info->IsIGP) {
++	/* RS4xx TMDS stuff is in the mobile table */
++	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x42);
++	if (offset) {
++	    int rev = RADEON_BIOS8(offset);
++	    if (rev >= 6) {
++		offset = RADEON_BIOS16(offset + 0x17);
++		if (offset) {
++		    offset = RADEON_BIOS16(offset + 2);
++		    rev = RADEON_BIOS8(offset);
++		    if (offset && (rev > 1)) {
++			int blocks = RADEON_BIOS8(offset + 3);
++			int index = offset + 4;
++			radeon_output->dvo_i2c.valid = FALSE;
++			while (blocks > 0) {
++			    int id = RADEON_BIOS16(index);
++			    index += 2;
++			    switch (id >> 13) {
++			    case 0:
++				index += 6;
++				break;
++			    case 2:
++				index += 10;
++				break;
++			    case 3:
++				index += 2;
++				break;
++			    case 4:
++				index += 2;
++				break;
++			    case 6:
++				radeon_output->dvo_i2c_slave_addr =
++				    RADEON_BIOS16(index) & 0xff;
++				index += 2;
++				radeon_output->dvo_i2c =
++				    RADEONLookupI2CBlock(pScrn, RADEON_BIOS8(index));
++				return TRUE;
++			    default:
++				break;
++			    }
++			    blocks--;
++			}
++		    }
++		}
++	    }
++	}
+     } else {
+ 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x58);
+ 	if (offset) {
+@@ -1148,10 +1275,11 @@ Bool RADEONGetExtTMDSInfoFromBIOS (xf86OutputPtr output)
+ 		radeon_output->dvo_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC);
+ 	    else if (gpio_reg == 4)
+ 		radeon_output->dvo_i2c = legacy_setup_i2c_bus(RADEON_GPIO_CRT2_DDC);
+-	    else if (gpio_reg == 5)
++	    else if (gpio_reg == 5) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			   "unsupported MM gpio_reg\n");
+-	    else {
++		return FALSE;
++	    } else {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			   "Unknown gpio reg: %d\n", gpio_reg);
+ 		return FALSE;
+@@ -1179,12 +1307,82 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output)
+     unsigned char *RADEONMMIO = info->MMIO;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+     int offset, index, id;
+-    uint32_t val, reg, andmask, ormask;
++    uint32_t val, reg, and_mask, or_mask;
+ 
+     if (!info->VBIOS) return FALSE;
+ 
+     if (info->IsAtomBios) {
+ 	return FALSE;
++    } else if (info->IsIGP) {
++	/* RS4xx TMDS stuff is in the mobile table */
++	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x42);
++	if (offset) {
++	    int rev = RADEON_BIOS8(offset);
++	    if (rev >= 6) {
++		offset = RADEON_BIOS16(offset + 0x17);
++		if (offset) {
++		    offset = RADEON_BIOS16(offset + 2);
++		    rev = RADEON_BIOS8(offset);
++		    if (offset && (rev > 1)) {
++			int blocks = RADEON_BIOS8(offset + 3);
++			index = offset + 4;
++			while (blocks > 0) {
++			    id = RADEON_BIOS16(index);
++			    index += 2;
++			    switch (id >> 13) {
++			    case 0:
++				reg = (id & 0x1fff) * 4;
++				val = RADEON_BIOS32(index);
++				index += 4;
++				ErrorF("MMIO: 0x%x 0x%x\n",
++				       (unsigned)reg, (unsigned)val);
++				OUTREG(reg, val);
++				break;
++			    case 2:
++				reg = (id & 0x1fff) * 4;
++				and_mask = RADEON_BIOS32(index);
++				index += 4;
++				or_mask = RADEON_BIOS32(index);
++				index += 4;
++				ErrorF("MMIO mask: 0x%x 0x%x 0x%x\n",
++				       (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask);
++				val = INREG(reg);
++				val = (val & and_mask) | or_mask;
++				OUTREG(reg, val);
++				break;
++			    case 3:
++				val = RADEON_BIOS16(index);
++				index += 2;
++				ErrorF("delay: %u\n", (unsigned)val);
++				usleep(val);
++				break;
++			    case 4:
++				val = RADEON_BIOS16(index);
++				index += 2;
++				ErrorF("delay: %u\n", (unsigned)val * 1000);
++				usleep(val * 1000);
++				break;
++			    case 6:
++				index++;
++				reg = RADEON_BIOS8(index);
++				index++;
++				val = RADEON_BIOS8(index);
++				index++;
++				ErrorF("i2c write: 0x%x, 0x%x\n", (unsigned)reg,
++				       (unsigned)val);
++				RADEONDVOWriteByte(radeon_output->DVOChip, reg, val);
++				break;
++			    default:
++				ErrorF("unknown id %d\n", id>>13);
++				return FALSE;
++			    }
++			    blocks--;
++			}
++			return TRUE;
++		    }
++		}
++	    }
++	}
+     } else {
+ 	offset = RADEON_BIOS16(info->ROMHeaderStart + 0x58);
+ 	if (offset) {
+@@ -1194,24 +1392,24 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output)
+ 		index += 2;
+ 		switch(id >> 13) {
+ 		case 0:
+-		    reg = id & 0x1fff;
++		    reg = (id & 0x1fff) * 4;
+ 		    val = RADEON_BIOS32(index);
+ 		    index += 4;
+-		    ErrorF("WRITE INDEXED: 0x%x 0x%x\n",
++		    ErrorF("MMIO: 0x%x 0x%x\n",
+ 			   (unsigned)reg, (unsigned)val);
+-		    /*OUTREG(reg, val);*/
++		    OUTREG(reg, val);
+ 		    break;
+ 		case 2:
+-		    reg = id & 0x1fff;
+-		    andmask = RADEON_BIOS32(index);
++		    reg = (id & 0x1fff) * 4;
++		    and_mask = RADEON_BIOS32(index);
+ 		    index += 4;
+-		    ormask = RADEON_BIOS32(index);
++		    or_mask = RADEON_BIOS32(index);
+ 		    index += 4;
+ 		    val = INREG(reg);
+-		    val = (val & andmask) | ormask;
+-		    ErrorF("MASK DIRECT: 0x%x 0x%x 0x%x\n",
+-			   (unsigned)reg, (unsigned)andmask, (unsigned)ormask);
+-		    /*OUTREG(reg, val);*/
++		    val = (val & and_mask) | or_mask;
++		    ErrorF("MMIO mask: 0x%x 0x%x 0x%x\n",
++			   (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask);
++		    OUTREG(reg, val);
+ 		    break;
+ 		case 4:
+ 		    val = RADEON_BIOS16(index);
+@@ -1221,15 +1419,15 @@ Bool RADEONInitExtTMDSInfoFromBIOS (xf86OutputPtr output)
+ 		    break;
+ 		case 5:
+ 		    reg = id & 0x1fff;
+-		    andmask = RADEON_BIOS32(index);
++		    and_mask = RADEON_BIOS32(index);
+ 		    index += 4;
+-		    ormask = RADEON_BIOS32(index);
++		    or_mask = RADEON_BIOS32(index);
+ 		    index += 4;
+-		    ErrorF("MASK PLL: 0x%x 0x%x 0x%x\n",
+-			   (unsigned)reg, (unsigned)andmask, (unsigned)ormask);
+-		    /*val = INPLL(pScrn, reg);
+-		    val = (val & andmask) | ormask;
+-		    OUTPLL(pScrn, reg, val);*/
++		    ErrorF("PLL mask: 0x%x 0x%x 0x%x\n",
++			   (unsigned)reg, (unsigned)and_mask, (unsigned)or_mask);
++		    val = INPLL(pScrn, reg);
++		    val = (val & and_mask) | or_mask;
++		    OUTPLL(pScrn, reg, val);
+ 		    break;
+ 		case 6:
+ 		    reg = id & 0x1fff;
+diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
+index ed3174a..daaf717 100644
+--- a/src/radeon_chipinfo_gen.h
++++ b/src/radeon_chipinfo_gen.h
+@@ -1,6 +1,7 @@
+ /* This file is autogenerated please do not edit */
+ RADEONCardInfo RADEONCards[] = {
+  { 0x3150, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 },
++ { 0x3151, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 },
+  { 0x3152, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 },
+  { 0x3154, CHIP_FAMILY_RV380, 1, 0, 0, 0, 0 },
+  { 0x3E50, CHIP_FAMILY_RV380, 0, 0, 0, 0, 0 },
+@@ -250,6 +251,9 @@ RADEONCardInfo RADEONCards[] = {
+  { 0x940A, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 },
+  { 0x940B, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 },
+  { 0x940F, CHIP_FAMILY_R600, 0, 0, 0, 0, 0 },
++ { 0x9440, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 },
++ { 0x9441, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 },
++ { 0x9442, CHIP_FAMILY_RV770, 0, 0, 0, 0, 0 },
+  { 0x94C0, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 },
+  { 0x94C1, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 },
+  { 0x94C3, CHIP_FAMILY_RV610, 0, 0, 0, 0, 0 },
+@@ -267,6 +271,7 @@ RADEONCardInfo RADEONCards[] = {
+  { 0x9507, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 },
+  { 0x950F, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 },
+  { 0x9511, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 },
++ { 0x9515, CHIP_FAMILY_RV670, 0, 0, 0, 0, 0 },
+  { 0x9580, CHIP_FAMILY_RV630, 0, 0, 0, 0, 0 },
+  { 0x9581, CHIP_FAMILY_RV630, 1, 0, 0, 0, 0 },
+  { 0x9583, CHIP_FAMILY_RV630, 1, 0, 0, 0, 0 },
+diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
+index d1761d2..79b094a 100644
+--- a/src/radeon_chipset_gen.h
++++ b/src/radeon_chipset_gen.h
+@@ -1,6 +1,7 @@
+ /* This file is autogenerated please do not edit */
+ static SymTabRec RADEONChipsets[] = {
+   { PCI_CHIP_RV380_3150, "ATI Radeon Mobility X600 (M24) 3150 (PCIE)" },
++  { PCI_CHIP_RV380_3151, "ATI FireMV 2400 (PCI)" },
+   { PCI_CHIP_RV380_3152, "ATI Radeon Mobility X300 (M24) 3152 (PCIE)" },
+   { PCI_CHIP_RV380_3154, "ATI FireGL M24 GL 3154 (PCIE)" },
+   { PCI_CHIP_RV380_3E50, "ATI Radeon X600 (RV380) 3E50 (PCIE)" },
+@@ -250,6 +251,9 @@ static SymTabRec RADEONChipsets[] = {
+   { PCI_CHIP_R600_940A, "ATI FireGL V8650" },
+   { PCI_CHIP_R600_940B, "ATI FireGL V8600" },
+   { PCI_CHIP_R600_940F, "ATI FireGL V7600" },
++  { PCI_CHIP_RV770_9440, "ATI Radeon 4800 Series" },
++  { PCI_CHIP_RV770_9441, "ATI Radeon HD 4870 x2" },
++  { PCI_CHIP_RV770_9442, "ATI Radeon 4800 Series" },
+   { PCI_CHIP_RV610_94C0, "ATI RV610" },
+   { PCI_CHIP_RV610_94C1, "ATI Radeon HD 2400 XT" },
+   { PCI_CHIP_RV610_94C3, "ATI Radeon HD 2400 Pro" },
+@@ -267,6 +271,7 @@ static SymTabRec RADEONChipsets[] = {
+   { PCI_CHIP_RV670_9507, "ATI RV670" },
+   { PCI_CHIP_RV670_950F, "ATI Radeon HD3870 X2" },
+   { PCI_CHIP_RV670_9511, "ATI FireGL V7700" },
++  { PCI_CHIP_RV670_9515, "ATI Radeon HD3850" },
+   { PCI_CHIP_RV630_9580, "ATI RV630" },
+   { PCI_CHIP_RV630_9581, "ATI Mobility Radeon HD 2600" },
+   { PCI_CHIP_RV630_9583, "ATI Mobility Radeon HD 2600 XT" },
+diff --git a/src/radeon_common.h b/src/radeon_common.h
+deleted file mode 100644
+index 193c1f9..0000000
+--- a/src/radeon_common.h
++++ /dev/null
+@@ -1,496 +0,0 @@
+-/* radeon_common.h -- common header definitions for Radeon 2D/3D/DRM suite
+- *
+- * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
+- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
+- * All Rights Reserved.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining a
+- * copy of this software and associated documentation files (the "Software"),
+- * to deal in the Software without restriction, including without limitation
+- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+- * and/or sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice (including the next
+- * paragraph) shall be included in all copies or substantial portions of the
+- * Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+- * DEALINGS IN THE SOFTWARE.
+- *
+- * Author:
+- *   Gareth Hughes <gareth@valinux.com>
+- *   Kevin E. Martin <martin@valinux.com>
+- *   Keith Whitwell <keith@tungstengraphics.com>
+- *
+- * Converted to common header format:
+- *   Jens Owen <jens@tungstengraphics.com>
+- *
+- */
+-
+-#ifndef _RADEON_COMMON_H_
+-#define _RADEON_COMMON_H_
+-
+-#include <inttypes.h>
+-#include "xf86drm.h"
+-
+-/* WARNING: If you change any of these defines, make sure to change
+- * the kernel include file as well (radeon_drm.h)
+- */
+-
+-/* Driver specific DRM command indices
+- * NOTE: these are not OS specific, but they are driver specific
+- */
+-#define DRM_RADEON_CP_INIT                0x00
+-#define DRM_RADEON_CP_START               0x01
+-#define DRM_RADEON_CP_STOP                0x02
+-#define DRM_RADEON_CP_RESET               0x03
+-#define DRM_RADEON_CP_IDLE                0x04
+-#define DRM_RADEON_RESET                  0x05
+-#define DRM_RADEON_FULLSCREEN             0x06
+-#define DRM_RADEON_SWAP                   0x07
+-#define DRM_RADEON_CLEAR                  0x08
+-#define DRM_RADEON_VERTEX                 0x09
+-#define DRM_RADEON_INDICES                0x0a
+-#define DRM_RADEON_STIPPLE                0x0c
+-#define DRM_RADEON_INDIRECT               0x0d
+-#define DRM_RADEON_TEXTURE                0x0e
+-#define DRM_RADEON_VERTEX2                0x0f
+-#define DRM_RADEON_CMDBUF                 0x10
+-#define DRM_RADEON_GETPARAM               0x11
+-#define DRM_RADEON_FLIP                   0x12
+-#define DRM_RADEON_ALLOC                  0x13
+-#define DRM_RADEON_FREE                   0x14
+-#define DRM_RADEON_INIT_HEAP              0x15
+-#define DRM_RADEON_IRQ_EMIT               0x16
+-#define DRM_RADEON_IRQ_WAIT               0x17
+-#define DRM_RADEON_CP_RESUME              0x18
+-#define DRM_RADEON_SETPARAM               0x19
+-#define DRM_RADEON_SURF_ALLOC             0x1a
+-#define DRM_RADEON_SURF_FREE              0x1b
+-#define DRM_RADEON_MAX_DRM_COMMAND_INDEX  0x39
+-
+-
+-#define RADEON_FRONT	0x1
+-#define RADEON_BACK	0x2
+-#define RADEON_DEPTH	0x4
+-#define RADEON_STENCIL	0x8
+-
+-#define RADEON_CLEAR_X1        0
+-#define RADEON_CLEAR_Y1        1
+-#define RADEON_CLEAR_X2        2
+-#define RADEON_CLEAR_Y2        3
+-#define RADEON_CLEAR_DEPTH     4
+-
+-
+-typedef struct {
+-   enum {
+-      DRM_RADEON_INIT_CP    = 0x01,
+-      DRM_RADEON_CLEANUP_CP = 0x02,
+-      DRM_RADEON_INIT_R200_CP = 0x03,
+-      DRM_RADEON_INIT_R300_CP = 0x04
+-   } func;
+-   unsigned long sarea_priv_offset;
+-   int is_pci;
+-   int cp_mode;
+-   int gart_size;
+-   int ring_size;
+-   int usec_timeout;
+-
+-   unsigned int fb_bpp;
+-   unsigned int front_offset, front_pitch;
+-   unsigned int back_offset, back_pitch;
+-   unsigned int depth_bpp;
+-   unsigned int depth_offset, depth_pitch;
+-
+-   unsigned long fb_offset;
+-   unsigned long mmio_offset;
+-   unsigned long ring_offset;
+-   unsigned long ring_rptr_offset;
+-   unsigned long buffers_offset;
+-   unsigned long gart_textures_offset;
+-} drmRadeonInit;
+-
+-typedef struct {
+-   int flush;
+-   int idle;
+-} drmRadeonCPStop;
+-
+-typedef struct {
+-   int idx;
+-   int start;
+-   int end;
+-   int discard;
+-} drmRadeonIndirect;
+-
+-typedef union drmRadeonClearR {
+-        float f[5];
+-        unsigned int ui[5];
+-} drmRadeonClearRect;
+-
+-typedef struct drmRadeonClearT {
+-        unsigned int flags;
+-        unsigned int clear_color;
+-        unsigned int clear_depth;
+-        unsigned int color_mask;
+-        unsigned int depth_mask;   /* misnamed field:  should be stencil */
+-        drmRadeonClearRect *depth_boxes;
+-} drmRadeonClearType;
+-
+-typedef struct drmRadeonFullscreenT {
+-        enum {
+-                RADEON_INIT_FULLSCREEN    = 0x01,
+-                RADEON_CLEANUP_FULLSCREEN = 0x02
+-        } func;
+-} drmRadeonFullscreenType;
+-
+-typedef struct {
+-        unsigned int *mask;
+-} drmRadeonStipple;
+-
+-typedef struct {
+-        unsigned int x;
+-        unsigned int y;
+-        unsigned int width;
+-        unsigned int height;
+-        const void *data;
+-} drmRadeonTexImage;
+-
+-typedef struct {
+-        unsigned int offset;
+-        int pitch;
+-        int format;
+-        int width;                      /* Texture image coordinates */
+-        int height;
+-        drmRadeonTexImage *image;
+-} drmRadeonTexture;
+-
+-
+-#define RADEON_MAX_TEXTURE_UNITS 3
+-
+-/* Layout matches drm_radeon_state_t in linux drm_radeon.h.
+- */
+-typedef struct {
+-	struct {
+-		unsigned int pp_misc;				/* 0x1c14 */
+-		unsigned int pp_fog_color;
+-		unsigned int re_solid_color;
+-		unsigned int rb3d_blendcntl;
+-		unsigned int rb3d_depthoffset;
+-		unsigned int rb3d_depthpitch;
+-		unsigned int rb3d_zstencilcntl;
+-		unsigned int pp_cntl;				/* 0x1c38 */
+-		unsigned int rb3d_cntl;
+-		unsigned int rb3d_coloroffset;
+-		unsigned int re_width_height;
+-		unsigned int rb3d_colorpitch;
+-	} context;
+-	struct {
+-		unsigned int se_cntl;
+-	} setup1;
+-	struct {
+-		unsigned int se_coord_fmt;			/* 0x1c50 */
+-	} vertex;
+-	struct {
+-		unsigned int re_line_pattern;			/* 0x1cd0 */
+-		unsigned int re_line_state;
+-		unsigned int se_line_width;			/* 0x1db8 */
+-	} line;
+-	struct {
+-		unsigned int pp_lum_matrix;			/* 0x1d00 */
+-		unsigned int pp_rot_matrix_0;			/* 0x1d58 */
+-		unsigned int pp_rot_matrix_1;
+-	} bumpmap;
+-	struct {
+-		unsigned int rb3d_stencilrefmask;		/* 0x1d7c */
+-		unsigned int rb3d_ropcntl;
+-		unsigned int rb3d_planemask;
+-	} mask;
+-	struct {
+-		unsigned int se_vport_xscale;			/* 0x1d98 */
+-		unsigned int se_vport_xoffset;
+-		unsigned int se_vport_yscale;
+-		unsigned int se_vport_yoffset;
+-		unsigned int se_vport_zscale;
+-		unsigned int se_vport_zoffset;
+-	} viewport;
+-	struct {
+-		unsigned int se_cntl_status;			/* 0x2140 */
+-	} setup2;
+-	struct {
+-		unsigned int re_top_left;	/*ignored*/	/* 0x26c0 */
+-		unsigned int re_misc;
+-	} misc;
+-	struct {
+-		unsigned int pp_txfilter;
+-		unsigned int pp_txformat;
+-		unsigned int pp_txoffset;
+-		unsigned int pp_txcblend;
+-		unsigned int pp_txablend;
+-		unsigned int pp_tfactor;
+-		unsigned int pp_border_color;
+-	} texture[RADEON_MAX_TEXTURE_UNITS];
+-	struct {
+-		unsigned int se_zbias_factor;
+-		unsigned int se_zbias_constant;
+-	} zbias;
+-	unsigned int dirty;
+-} drmRadeonState;
+-
+-/* 1.1 vertex ioctl.  Used in compatibility modes.
+- */
+-typedef struct {
+-	int prim;
+-	int idx;			/* Index of vertex buffer */
+-	int count;			/* Number of vertices in buffer */
+-	int discard;			/* Client finished with buffer? */
+-} drmRadeonVertex;
+-
+-typedef struct {
+-	unsigned int start;
+-	unsigned int finish;
+-	unsigned int prim:8;
+-	unsigned int stateidx:8;
+-	unsigned int numverts:16; /* overloaded as offset/64 for elt prims */
+-        unsigned int vc_format;
+-} drmRadeonPrim;
+-
+-typedef struct {
+-        int idx;                        /* Index of vertex buffer */
+-        int discard;                    /* Client finished with buffer? */
+-        int nr_states;
+-        drmRadeonState *state;
+-        int nr_prims;
+-        drmRadeonPrim *prim;
+-} drmRadeonVertex2;
+-
+-#define RADEON_MAX_STATES 16
+-#define RADEON_MAX_PRIMS  64
+-
+-/* Command buffer.  Replace with true dma stream?
+- */
+-typedef struct {
+-	int bufsz;
+-	char *buf;
+-	int nbox;
+-        drm_clip_rect_t *boxes;
+-} drmRadeonCmdBuffer;
+-
+-/* New style per-packet identifiers for use in cmd_buffer ioctl with
+- * the RADEON_EMIT_PACKET command.  Comments relate new packets to old
+- * state bits and the packet size:
+- */
+-#define RADEON_EMIT_PP_MISC                         0 /* context/7 */
+-#define RADEON_EMIT_PP_CNTL                         1 /* context/3 */
+-#define RADEON_EMIT_RB3D_COLORPITCH                 2 /* context/1 */
+-#define RADEON_EMIT_RE_LINE_PATTERN                 3 /* line/2 */
+-#define RADEON_EMIT_SE_LINE_WIDTH                   4 /* line/1 */
+-#define RADEON_EMIT_PP_LUM_MATRIX                   5 /* bumpmap/1 */
+-#define RADEON_EMIT_PP_ROT_MATRIX_0                 6 /* bumpmap/2 */
+-#define RADEON_EMIT_RB3D_STENCILREFMASK             7 /* masks/3 */
+-#define RADEON_EMIT_SE_VPORT_XSCALE                 8 /* viewport/6 */
+-#define RADEON_EMIT_SE_CNTL                         9 /* setup/2 */
+-#define RADEON_EMIT_SE_CNTL_STATUS                  10 /* setup/1 */
+-#define RADEON_EMIT_RE_MISC                         11 /* misc/1 */
+-#define RADEON_EMIT_PP_TXFILTER_0                   12 /* tex0/6 */
+-#define RADEON_EMIT_PP_BORDER_COLOR_0               13 /* tex0/1 */
+-#define RADEON_EMIT_PP_TXFILTER_1                   14 /* tex1/6 */
+-#define RADEON_EMIT_PP_BORDER_COLOR_1               15 /* tex1/1 */
+-#define RADEON_EMIT_PP_TXFILTER_2                   16 /* tex2/6 */
+-#define RADEON_EMIT_PP_BORDER_COLOR_2               17 /* tex2/1 */
+-#define RADEON_EMIT_SE_ZBIAS_FACTOR                 18 /* zbias/2 */
+-#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT           19 /* tcl/11 */
+-#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED   20 /* material/17 */
+-#define R200_EMIT_PP_TXCBLEND_0                     21 /* tex0/4 */
+-#define R200_EMIT_PP_TXCBLEND_1                     22 /* tex1/4 */
+-#define R200_EMIT_PP_TXCBLEND_2                     23 /* tex2/4 */
+-#define R200_EMIT_PP_TXCBLEND_3                     24 /* tex3/4 */
+-#define R200_EMIT_PP_TXCBLEND_4                     25 /* tex4/4 */
+-#define R200_EMIT_PP_TXCBLEND_5                     26 /* tex5/4 */
+-#define R200_EMIT_PP_TXCBLEND_6                     27 /* /4 */
+-#define R200_EMIT_PP_TXCBLEND_7                     28 /* /4 */
+-#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0             29 /* tcl/6 */
+-#define R200_EMIT_TFACTOR_0                         30 /* tf/6 */
+-#define R200_EMIT_VTX_FMT_0                         31 /* vtx/4 */
+-#define R200_EMIT_VAP_CTL                           32 /* vap/1 */
+-#define R200_EMIT_MATRIX_SELECT_0                   33 /* msl/5 */
+-#define R200_EMIT_TEX_PROC_CTL_2                    34 /* tcg/5 */
+-#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL            35 /* tcl/1 */
+-#define R200_EMIT_PP_TXFILTER_0                     36 /* tex0/6 */
+-#define R200_EMIT_PP_TXFILTER_1                     37 /* tex1/6 */
+-#define R200_EMIT_PP_TXFILTER_2                     38 /* tex2/6 */
+-#define R200_EMIT_PP_TXFILTER_3                     39 /* tex3/6 */
+-#define R200_EMIT_PP_TXFILTER_4                     40 /* tex4/6 */
+-#define R200_EMIT_PP_TXFILTER_5                     41 /* tex5/6 */
+-#define R200_EMIT_PP_TXOFFSET_0                     42 /* tex0/1 */
+-#define R200_EMIT_PP_TXOFFSET_1                     43 /* tex1/1 */
+-#define R200_EMIT_PP_TXOFFSET_2                     44 /* tex2/1 */
+-#define R200_EMIT_PP_TXOFFSET_3                     45 /* tex3/1 */
+-#define R200_EMIT_PP_TXOFFSET_4                     46 /* tex4/1 */
+-#define R200_EMIT_PP_TXOFFSET_5                     47 /* tex5/1 */
+-#define R200_EMIT_VTE_CNTL                          48 /* vte/1 */
+-#define R200_EMIT_OUTPUT_VTX_COMP_SEL               49 /* vtx/1 */
+-#define R200_EMIT_PP_TAM_DEBUG3                     50 /* tam/1 */
+-#define R200_EMIT_PP_CNTL_X                         51 /* cst/1 */
+-#define R200_EMIT_RB3D_DEPTHXY_OFFSET               52 /* cst/1 */
+-#define R200_EMIT_RE_AUX_SCISSOR_CNTL               53 /* cst/1 */
+-#define R200_EMIT_RE_SCISSOR_TL_0                   54 /* cst/2 */
+-#define R200_EMIT_RE_SCISSOR_TL_1                   55 /* cst/2 */
+-#define R200_EMIT_RE_SCISSOR_TL_2                   56 /* cst/2 */
+-#define R200_EMIT_SE_VAP_CNTL_STATUS                57 /* cst/1 */
+-#define R200_EMIT_SE_VTX_STATE_CNTL                 58 /* cst/1 */
+-#define R200_EMIT_RE_POINTSIZE                      59 /* cst/1 */
+-#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0       60 /* cst/4 */
+-#define R200_EMIT_PP_CUBIC_FACES_0                  61
+-#define R200_EMIT_PP_CUBIC_OFFSETS_0                62
+-#define R200_EMIT_PP_CUBIC_FACES_1                  63
+-#define R200_EMIT_PP_CUBIC_OFFSETS_1                64
+-#define R200_EMIT_PP_CUBIC_FACES_2                  65
+-#define R200_EMIT_PP_CUBIC_OFFSETS_2                66
+-#define R200_EMIT_PP_CUBIC_FACES_3                  67
+-#define R200_EMIT_PP_CUBIC_OFFSETS_3                68
+-#define R200_EMIT_PP_CUBIC_FACES_4                  69
+-#define R200_EMIT_PP_CUBIC_OFFSETS_4                70
+-#define R200_EMIT_PP_CUBIC_FACES_5                  71
+-#define R200_EMIT_PP_CUBIC_OFFSETS_5                72
+-#define RADEON_EMIT_PP_TEX_SIZE_0                   73
+-#define RADEON_EMIT_PP_TEX_SIZE_1                   74
+-#define RADEON_EMIT_PP_TEX_SIZE_2                   75
+-#define R200_EMIT_RB3D_BLENDCOLOR                   76
+-#define RADEON_MAX_STATE_PACKETS                    77
+-
+-
+-/* Commands understood by cmd_buffer ioctl.  More can be added but
+- * obviously these can't be removed or changed:
+- */
+-#define RADEON_CMD_PACKET      1 /* emit one of the register packets above */
+-#define RADEON_CMD_SCALARS     2 /* emit scalar data */
+-#define RADEON_CMD_VECTORS     3 /* emit vector data */
+-#define RADEON_CMD_DMA_DISCARD 4 /* discard current dma buf */
+-#define RADEON_CMD_PACKET3     5 /* emit hw packet */
+-#define RADEON_CMD_PACKET3_CLIP 6 /* emit hw packet wrapped in cliprects */
+-#define RADEON_CMD_SCALARS2     7 /* R200 stopgap */
+-#define RADEON_CMD_WAIT         8 /* synchronization */
+-
+-typedef union {
+-	int i;
+-	struct {
+-	   unsigned char cmd_type, pad0, pad1, pad2;
+-	} header;
+-	struct {
+-	   unsigned char cmd_type, packet_id, pad0, pad1;
+-	} packet;
+-	struct {
+-	   unsigned char cmd_type, offset, stride, count;
+-	} scalars;
+-	struct {
+-	   unsigned char cmd_type, offset, stride, count;
+-	} vectors;
+-	struct {
+-	   unsigned char cmd_type, buf_idx, pad0, pad1;
+-	} dma;
+-	struct {
+-	   unsigned char cmd_type, flags, pad0, pad1;
+-	} wait;
+-} drmRadeonCmdHeader;
+-
+-
+-#define RADEON_WAIT_2D  0x1
+-#define RADEON_WAIT_3D  0x2
+-
+-
+-/* 1.3: An ioctl to get parameters that aren't available to the 3d
+- * client any other way.  
+- */
+-#define RADEON_PARAM_GART_BUFFER_OFFSET    1 /* card offset of 1st GART buffer */
+-#define RADEON_PARAM_LAST_FRAME            2
+-#define RADEON_PARAM_LAST_DISPATCH         3
+-#define RADEON_PARAM_LAST_CLEAR            4
+-/* Added with DRM version 1.6. */
+-#define RADEON_PARAM_IRQ_NR                5
+-#define RADEON_PARAM_GART_BASE             6 /* card offset of GART base */
+-/* Added with DRM version 1.8. */
+-#define RADEON_PARAM_REGISTER_HANDLE       7 /* for drmMap() */
+-#define RADEON_PARAM_STATUS_HANDLE         8
+-#define RADEON_PARAM_SAREA_HANDLE          9
+-#define RADEON_PARAM_GART_TEX_HANDLE       10
+-#define RADEON_PARAM_SCRATCH_OFFSET        11
+-#define RADEON_PARAM_CARD_TYPE             12
+-#define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */
+-#define RADEON_PARAM_FB_LOCATION           14   /* FB location */
+-#define RADEON_PARAM_NUM_GB_PIPES          15
+-
+-typedef struct drm_radeon_getparam {
+-	int param;
+-	int *value;
+-} drmRadeonGetParam;
+-
+-
+-#define RADEON_MEM_REGION_GART 1
+-#define RADEON_MEM_REGION_FB   2
+-
+-typedef struct drm_radeon_mem_alloc {
+-	int region;
+-	int alignment;
+-	int size;
+-	int *region_offset;	/* offset from start of fb or GART */
+-} drmRadeonMemAlloc;
+-
+-typedef struct drm_radeon_mem_free {
+-	int region;
+-	int region_offset;
+-} drmRadeonMemFree;
+-
+-typedef struct drm_radeon_mem_init_heap {
+-	int region;
+-	int size;
+-	int start;
+-} drmRadeonMemInitHeap;
+-
+-/* 1.6: Userspace can request & wait on irq's:
+- */
+-typedef struct drm_radeon_irq_emit {
+-	int *irq_seq;
+-} drmRadeonIrqEmit;
+-
+-typedef struct drm_radeon_irq_wait {
+-	int irq_seq;
+-} drmRadeonIrqWait;
+-
+-
+-/* 1.10: Clients tell the DRM where they think the framebuffer is located in
+- * the card's address space, via a new generic ioctl to set parameters
+- */
+-
+-typedef struct drm_radeon_set_param {
+-	unsigned int param;
+-	int64_t      value;
+-} drmRadeonSetParam;
+-
+-#define RADEON_SETPARAM_FB_LOCATION     1
+-#define RADEON_SETPARAM_SWITCH_TILING   2
+-#define RADEON_SETPARAM_PCIGART_LOCATION 3
+-#define RADEON_SETPARAM_NEW_MEMMAP 4
+-#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5
+-#define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */
+-/* 1.14: Clients can allocate/free a surface
+- */
+-typedef struct drm_radeon_surface_alloc {
+-	unsigned int address;
+-	unsigned int size;
+-	unsigned int flags;
+-} drmRadeonSurfaceAlloc;
+-
+-typedef struct drm_radeon_surface_free {
+-	unsigned int address;
+-} drmRadeonSurfaceFree;
+-
+-#define	DRM_RADEON_VBLANK_CRTC1 	1
+-#define	DRM_RADEON_VBLANK_CRTC2 	2
+-
+-#endif
+diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
+index 58fe306..dba197e 100644
+--- a/src/radeon_commonfuncs.c
++++ b/src/radeon_commonfuncs.c
+@@ -58,7 +58,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+     uint32_t gb_tile_config, su_reg_dest, vap_cntl;
+     ACCEL_PREAMBLE();
+ 
+-    info->texW[0] = info->texH[0] = info->texW[1] = info->texH[1] = 1;
++    info->accel_state->texW[0] = info->accel_state->texH[0] =
++	info->accel_state->texW[1] = info->accel_state->texH[1] = 1;
+ 
+     if (IS_R300_3D || IS_R500_3D) {
+ 
+@@ -70,7 +71,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 
+ 	gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16);
+ 
+-	switch(info->num_gb_pipes) {
++	switch(info->accel_state->num_gb_pipes) {
+ 	case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break;
+ 	case 3: gb_tile_config |= R300_PIPE_COUNT_R420_3P; break;
+ 	case 4: gb_tile_config |= R300_PIPE_COUNT_R420; break;
+@@ -87,7 +88,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	FINISH_ACCEL();
+ 
+ 	if (IS_R500_3D) {
+-	    su_reg_dest = ((1 << info->num_gb_pipes) - 1);
++	    su_reg_dest = ((1 << info->accel_state->num_gb_pipes) - 1);
+ 	    BEGIN_ACCEL(2);
+ 	    OUT_ACCEL_REG(R500_SU_REG_DEST, su_reg_dest);
+ 	    OUT_ACCEL_REG(R500_VAP_INDEX_OFFSET, 0);
+@@ -146,7 +147,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	FINISH_ACCEL();
+ 
+ 	/* setup the VAP */
+-	if (info->has_tcl)
++	if (info->accel_state->has_tcl)
+ 	    vap_cntl = ((5 << R300_PVS_NUM_SLOTS_SHIFT) |
+ 			(5 << R300_PVS_NUM_CNTLRS_SHIFT) |
+ 			(9 << R300_VF_MAX_VTX_NUM_SHIFT));
+@@ -158,25 +159,26 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	if (info->ChipFamily == CHIP_FAMILY_RV515)
+ 	    vap_cntl |= (2 << R300_PVS_NUM_FPUS_SHIFT);
+ 	else if ((info->ChipFamily == CHIP_FAMILY_RV530) ||
+-		 (info->ChipFamily == CHIP_FAMILY_RV560))
++		 (info->ChipFamily == CHIP_FAMILY_RV560) ||
++		 (info->ChipFamily == CHIP_FAMILY_RV570))
+ 	    vap_cntl |= (5 << R300_PVS_NUM_FPUS_SHIFT);
+-	else if (info->ChipFamily == CHIP_FAMILY_R420)
++	else if ((info->ChipFamily == CHIP_FAMILY_RV410) ||
++		 (info->ChipFamily == CHIP_FAMILY_R420))
+ 	    vap_cntl |= (6 << R300_PVS_NUM_FPUS_SHIFT);
+ 	else if ((info->ChipFamily == CHIP_FAMILY_R520) ||
+-		 (info->ChipFamily == CHIP_FAMILY_R580) ||
+-		 (info->ChipFamily == CHIP_FAMILY_RV570))
++		 (info->ChipFamily == CHIP_FAMILY_R580))
+ 	    vap_cntl |= (8 << R300_PVS_NUM_FPUS_SHIFT);
+ 	else
+ 	    vap_cntl |= (4 << R300_PVS_NUM_FPUS_SHIFT);
+ 
+-	if (info->has_tcl)
++	if (info->accel_state->has_tcl)
+ 	    BEGIN_ACCEL(15);
+ 	else
+ 	    BEGIN_ACCEL(9);
+ 	OUT_ACCEL_REG(R300_VAP_VTX_STATE_CNTL, 0);
+ 	OUT_ACCEL_REG(R300_VAP_PVS_STATE_FLUSH_REG, 0);
+ 
+-	if (info->has_tcl)
++	if (info->accel_state->has_tcl)
+ 	    OUT_ACCEL_REG(R300_VAP_CNTL_STATUS, 0);
+ 	else
+ 	    OUT_ACCEL_REG(R300_VAP_CNTL_STATUS, R300_PVS_BYPASS);
+@@ -206,7 +208,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 		       ((R300_WRITE_ENA_X | R300_WRITE_ENA_Y | R300_WRITE_ENA_Z | R300_WRITE_ENA_W)
+ 			<< R300_WRITE_ENA_2_SHIFT)));
+ 
+-	if (info->has_tcl) {
++	if (info->accel_state->has_tcl) {
+ 	    OUT_ACCEL_REG(R300_VAP_PVS_FLOW_CNTL_OPC, 0);
+ 	    OUT_ACCEL_REG(R300_VAP_GB_VERT_CLIP_ADJ, 0x3f800000);
+ 	    OUT_ACCEL_REG(R300_VAP_GB_VERT_DISC_ADJ, 0x3f800000);
+@@ -217,8 +219,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	FINISH_ACCEL();
+ 
+ 	/* pre-load the vertex shaders */
+-	if (info->has_tcl) {
+-	    /* exa mask shader program */
++	if (info->accel_state->has_tcl) {
++	    /* exa mask/Xv bicubic shader program */
+ 	    BEGIN_ACCEL(13);
+ 	    OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_INDX_REG, 0);
+ 	    /* PVS inst 0 */
+@@ -498,14 +500,14 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	if (IS_R300_3D) {
+ 	    BEGIN_ACCEL(2);
+ 	    /* tex inst for src texture */
+-	    OUT_ACCEL_REG(R300_US_TEX_INST_0,
++	    OUT_ACCEL_REG(R300_US_TEX_INST(0),
+ 			  (R300_TEX_SRC_ADDR(0) |
+ 			   R300_TEX_DST_ADDR(0) |
+ 			   R300_TEX_ID(0) |
+ 			   R300_TEX_INST(R300_TEX_INST_LD)));
+ 
+ 	    /* tex inst for mask texture */
+-	    OUT_ACCEL_REG(R300_US_TEX_INST_1,
++	    OUT_ACCEL_REG(R300_US_TEX_INST(1),
+ 			  (R300_TEX_SRC_ADDR(1) |
+ 			   R300_TEX_DST_ADDR(1) |
+ 			   R300_TEX_ID(1) |
+@@ -514,9 +516,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 	}
+ 
+ 	if (IS_R300_3D) {
+-	    BEGIN_ACCEL(9);
++	    BEGIN_ACCEL(8);
+ 	    OUT_ACCEL_REG(R300_US_CONFIG, (0 << R300_NLEVEL_SHIFT) | R300_FIRST_TEX);
+-	    OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */
+ 	    OUT_ACCEL_REG(R300_US_CODE_ADDR_0,
+ 			  (R300_ALU_START(0) |
+ 			   R300_ALU_SIZE(0) |
+@@ -533,9 +534,8 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+ 			   R300_TEX_START(0) |
+ 			   R300_TEX_SIZE(0)));
+ 	} else {
+-	    BEGIN_ACCEL(7);
++	    BEGIN_ACCEL(6);
+ 	    OUT_ACCEL_REG(R300_US_CONFIG, R500_ZERO_TIMES_ANYTHING_EQUALS_ZERO);
+-	    OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */
+ 	    OUT_ACCEL_REG(R500_US_FC_CTRL, 0);
+ 	}
+ 	OUT_ACCEL_REG(R300_US_W_FMT, 0);
+@@ -687,14 +687,14 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn)
+ 
+ #ifdef ACCEL_CP
+     /* Make sure the CP is idle first */
+-    if (info->CPStarted) {
++    if (info->cp->CPStarted) {
+ 	int  ret;
+ 
+ 	FLUSH_RING();
+ 
+ 	for (;;) {
+ 	    do {
+-		ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE);
++		ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_IDLE);
+ 		if (ret && ret != -EBUSY) {
+ 		    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			       "%s: CP idle %d\n", __FUNCTION__, ret);
+diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
+index c63b650..9040bae 100644
+--- a/src/radeon_crtc.c
++++ b/src/radeon_crtc.c
+@@ -48,8 +48,7 @@
+ 
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+-#include "radeon_dri.h"
+-#include "radeon_sarea.h"
++#include "radeon_drm.h"
+ #include "sarea.h"
+ #endif
+ 
+@@ -58,6 +57,14 @@ extern void atombios_crtc_mode_set(xf86CrtcPtr crtc,
+ 				   DisplayModePtr adjusted_mode,
+ 				   int x, int y);
+ extern void atombios_crtc_dpms(xf86CrtcPtr crtc, int mode);
++extern void
++RADEONInitDispBandwidthLegacy(ScrnInfoPtr pScrn,
++			      DisplayModePtr mode1, int pixel_bytes1,
++			      DisplayModePtr mode2, int pixel_bytes2);
++extern void
++RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn,
++			     DisplayModePtr mode1, int pixel_bytes1,
++			     DisplayModePtr mode2, int pixel_bytes2);
+ 
+ void
+ radeon_crtc_dpms(xf86CrtcPtr crtc, int mode)
+@@ -220,7 +227,12 @@ RADEONComputePLL(RADEONPLLPtr pll,
+ 			best_freq = current_freq;
+ 			best_error = error;
+ 			best_vco_diff = vco_diff;
+-		    } else if ((flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) {
++		    } else if (((flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) ||
++			       ((flags & RADEON_PLL_PREFER_HIGH_REF_DIV) && (ref_div > best_ref_div)) ||
++			       ((flags & RADEON_PLL_PREFER_LOW_FB_DIV) && (feedback_div < best_feedback_div)) ||
++			       ((flags & RADEON_PLL_PREFER_HIGH_FB_DIV) && (feedback_div > best_feedback_div)) ||
++			       ((flags & RADEON_PLL_PREFER_LOW_POST_DIV) && (post_div < best_post_div)) ||
++			       ((flags & RADEON_PLL_PREFER_HIGH_POST_DIV) && (post_div > best_post_div))) {
+ 			best_post_div = post_div;
+ 			best_ref_div = ref_div;
+ 			best_feedback_div = feedback_div;
+@@ -354,7 +366,7 @@ radeon_crtc_lock(xf86CrtcPtr crtc)
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+ 
+ #ifdef XF86DRI
+-    if (info->CPStarted && pScrn->pScreen) {
++    if (info->cp->CPStarted && pScrn->pScreen) {
+ 	DRILock(pScrn->pScreen, 0);
+ 	if (info->accelOn)
+ 	    RADEON_SYNC(info, pScrn);
+@@ -375,51 +387,13 @@ radeon_crtc_unlock(xf86CrtcPtr crtc)
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+ 
+ #ifdef XF86DRI
+-	if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
++	if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
+ #endif
+ 
+     if (info->accelOn)
+         RADEON_SYNC(info, pScrn);
+ }
+ 
+-#ifdef USE_XAA
+-/**
+- * Allocates memory from the XF86 linear allocator, but also purges
+- * memory if possible to cause the allocation to succeed.
+- */
+-static FBLinearPtr
+-radeon_xf86AllocateOffscreenLinear(ScreenPtr pScreen, int length,
+-				 int granularity,
+-				 MoveLinearCallbackProcPtr moveCB,
+-				 RemoveLinearCallbackProcPtr removeCB,
+-				 pointer privData)
+-{
+-    FBLinearPtr linear;
+-    int max_size;
+-
+-    linear = xf86AllocateOffscreenLinear(pScreen, length, granularity, moveCB,
+-					 removeCB, privData);
+-    if (linear != NULL)
+-	return linear;
+-
+-    /* The above allocation didn't succeed, so purge unlocked stuff and try
+-     * again.
+-     */
+-    xf86QueryLargestOffscreenLinear(pScreen, &max_size, granularity,
+-				    PRIORITY_EXTREME);
+-
+-    if (max_size < length)
+-	return NULL;
+-
+-    xf86PurgeUnlockedOffscreenAreas(pScreen);
+-
+-    linear = xf86AllocateOffscreenLinear(pScreen, length, granularity, moveCB,
+-					 removeCB, privData);
+-
+-    return linear;
+-}
+-#endif
+-
+ /**
+  * Allocates memory for a locked-in-framebuffer shadow of the given
+  * width and height for this CRTC's rotated shadow framebuffer.
+@@ -429,8 +403,6 @@ static void *
+ radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
+ {
+     ScrnInfoPtr pScrn = crtc->scrn;
+-    /* if this is called during ScreenInit() we don't have pScrn->pScreen yet */
+-    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+     unsigned long rotate_pitch;
+@@ -441,49 +413,14 @@ radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
+     rotate_pitch = pScrn->displayWidth * cpp;
+     size = rotate_pitch * height;
+ 
+-#ifdef USE_EXA
+     /* We could get close to what we want here by just creating a pixmap like
+      * normal, but we have to lock it down in framebuffer, and there is no
+      * setter for offscreen area locking in EXA currently.  So, we just
+      * allocate offscreen memory and fake up a pixmap header for it.
+      */
+-    if (info->useEXA) {
+-	assert(radeon_crtc->rotate_mem_exa == NULL);
+-
+-	radeon_crtc->rotate_mem_exa = exaOffscreenAlloc(pScreen, size, align,
+-						       TRUE, NULL, NULL);
+-	if (radeon_crtc->rotate_mem_exa == NULL) {
+-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+-		       "Couldn't allocate shadow memory for rotated CRTC\n");
+-	    return NULL;
+-	}
+-	rotate_offset = radeon_crtc->rotate_mem_exa->offset;
+-    }
+-#endif /* USE_EXA */
+-#ifdef USE_XAA
+-    if (!info->useEXA) {
+-	/* The XFree86 linear allocator operates in units of screen pixels,
+-	 * sadly.
+-	 */
+-	size = (size + cpp - 1) / cpp;
+-	align = (align + cpp - 1) / cpp;
+-
+-	assert(radeon_crtc->rotate_mem_xaa == NULL);
+-
+-	radeon_crtc->rotate_mem_xaa =
+-	    radeon_xf86AllocateOffscreenLinear(pScreen, size, align,
+-					       NULL, NULL, NULL);
+-	if (radeon_crtc->rotate_mem_xaa == NULL) {
+-	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+-		       "Couldn't allocate shadow memory for rotated CRTC\n");
+-	    return NULL;
+-	}
+-#ifdef XF86DRI
+-	rotate_offset = info->frontOffset +
+-	    radeon_crtc->rotate_mem_xaa->offset * cpp;
+-#endif
+-    }
+-#endif /* USE_XAA */
++    rotate_offset = radeon_legacy_allocate_memory(pScrn, &radeon_crtc->crtc_rotate_mem, size, align);
++    if (rotate_offset == 0)
++	return NULL;
+ 
+     return info->FB + rotate_offset;
+ }
+@@ -523,26 +460,16 @@ static void
+ radeon_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
+ {
+     ScrnInfoPtr pScrn = crtc->scrn;
+-    RADEONInfoPtr  info = RADEONPTR(pScrn);
+     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+ 
+     if (rotate_pixmap)
+ 	FreeScratchPixmapHeader(rotate_pixmap);
+-    
++
+     if (data) {
+-#ifdef USE_EXA
+-	if (info->useEXA && radeon_crtc->rotate_mem_exa != NULL) {
+-	    exaOffscreenFree(pScrn->pScreen, radeon_crtc->rotate_mem_exa);
+-	    radeon_crtc->rotate_mem_exa = NULL;
+-	}
+-#endif /* USE_EXA */
+-#ifdef USE_XAA
+-	if (!info->useEXA) {
+-	    xf86FreeOffscreenLinear(radeon_crtc->rotate_mem_xaa);
+-	    radeon_crtc->rotate_mem_xaa = NULL;
+-	}
+-#endif /* USE_XAA */
++	radeon_legacy_free_memory(pScrn, radeon_crtc->crtc_rotate_mem);
++	radeon_crtc->crtc_rotate_mem = NULL;
+     }
++
+ }
+ 
+ static const xf86CrtcFuncsRec radeon_crtc_funcs = {
+@@ -567,6 +494,43 @@ static const xf86CrtcFuncsRec radeon_crtc_funcs = {
+     .destroy = NULL, /* XXX */
+ };
+ 
++void
++RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
++{
++    RADEONInfoPtr info = RADEONPTR(pScrn);
++    xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
++    DisplayModePtr mode1 = NULL, mode2 = NULL;
++    int pixel_bytes1 = info->CurrentLayout.pixel_bytes;
++    int pixel_bytes2 = info->CurrentLayout.pixel_bytes;
++
++    if (xf86_config->num_crtc == 2) {
++	if (xf86_config->crtc[1]->enabled &&
++	    xf86_config->crtc[0]->enabled) {
++	    mode1 = &xf86_config->crtc[0]->mode;
++	    mode2 = &xf86_config->crtc[1]->mode;
++	} else if (xf86_config->crtc[0]->enabled) {
++	    mode1 = &xf86_config->crtc[0]->mode;
++	} else if (xf86_config->crtc[1]->enabled) {
++	    mode2 = &xf86_config->crtc[1]->mode;
++	} else
++	    return;
++    } else {
++	if (info->IsPrimary)
++	    mode1 = &xf86_config->crtc[0]->mode;
++	else if (info->IsSecondary)
++	    mode2 = &xf86_config->crtc[0]->mode;
++	else if (xf86_config->crtc[0]->enabled)
++	    mode1 = &xf86_config->crtc[0]->mode;
++	else
++	    return;
++    }
++
++    if (IS_AVIVO_VARIANT)
++	RADEONInitDispBandwidthAVIVO(pScrn, mode1, pixel_bytes1, mode2, pixel_bytes2);
++    else
++	RADEONInitDispBandwidthLegacy(pScrn, mode1, pixel_bytes1, mode2, pixel_bytes2);
++}
++
+ Bool RADEONAllocateControllers(ScrnInfoPtr pScrn, int mask)
+ {
+     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+@@ -791,7 +755,7 @@ RADEONSetTiling(ScrnInfoPtr pScrn)
+ 
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled && (info->tilingEnabled != can_tile)) {
+-	RADEONSAREAPrivPtr pSAREAPriv;
++	drm_radeon_sarea_t *pSAREAPriv;
+ 	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_SWITCH_TILING, (can_tile ? 1 : 0)) < 0)
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "[drm] failed changing tiling status\n");
+diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
+index c4472db..08bfddf 100644
+--- a/src/radeon_cursor.c
++++ b/src/radeon_cursor.c
+@@ -209,21 +209,23 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
+     if (xorigin >= CURSOR_WIDTH)  xorigin = CURSOR_WIDTH - 1;
+     if (yorigin >= CURSOR_HEIGHT) yorigin = CURSOR_HEIGHT - 1;
+ 
+-    if (mode->Flags & V_INTERLACE)
+-	y /= 2;
+-    else if (mode->Flags & V_DBLSCAN)
+-	y *= 2;
+-
+     if (IS_AVIVO_VARIANT) {
+ 	/* avivo cursor spans the full fb width */
+-	x += crtc->x;
+-	y += crtc->y;
++	if (crtc->rotatedData == NULL) {
++	    x += crtc->x;
++	    y += crtc->y;
++	}
+ 	avivo_lock_cursor(crtc, TRUE);
+ 	OUTREG(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offset, ((xorigin ? 0 : x) << 16)
+ 	       | (yorigin ? 0 : y));
+ 	OUTREG(AVIVO_D1CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin);
+ 	avivo_lock_cursor(crtc, FALSE);
+     } else {
++	if (mode->Flags & V_INTERLACE)
++	    y /= 2;
++	else if (mode->Flags & V_DBLSCAN)
++	    y *= 2;
++
+ 	if (crtc_id == 0) {
+ 	    OUTREG(RADEON_CUR_HORZ_VERT_OFF,  (RADEON_CUR_LOCK
+ 					       | (xorigin << 16)
+@@ -325,49 +327,32 @@ Bool RADEONCursorInit(ScreenPtr pScreen)
+     int		       width_bytes;
+     int                height;
+     int                size_bytes;
+-    uint32_t           cursor_offset = 0;
+     int                c;
+ 
+     size_bytes  = CURSOR_WIDTH * 4 * CURSOR_HEIGHT;
+     width       = pScrn->displayWidth;
+     width_bytes = width * (pScrn->bitsPerPixel / 8);
+     height      = ((size_bytes * xf86_config->num_crtc) + width_bytes - 1) / width_bytes;
++    int align = IS_AVIVO_VARIANT ? 4096 : 256;
+ 
+-#ifdef USE_XAA
+     if (!info->useEXA) {
+-	int align = IS_AVIVO_VARIANT ? 4096 : 256;
+-	FBAreaPtr          fbarea;
+-
+-	fbarea = xf86AllocateOffscreenArea(pScreen, width, height,
+-					   align, NULL, NULL, NULL);
+-
+-	if (!fbarea) {
+-	    cursor_offset    = 0;
+-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+-		   "Hardware cursor disabled"
+-		   " due to insufficient offscreen memory\n");
+-	    return FALSE;
+-	} else {
+-	    cursor_offset  = RADEON_ALIGN((fbarea->box.x1 +
+-					   fbarea->box.y1 * width) *
+-					  info->CurrentLayout.pixel_bytes,
+-					  align);
+-
+-	    for (c = 0; c < xf86_config->num_crtc; c++) {
+-		xf86CrtcPtr crtc = xf86_config->crtc[c];
+-		RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+-
+-		radeon_crtc->cursor_offset = cursor_offset + (c * size_bytes);
+-
+-		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-			   "Using hardware cursor %d (scanline %u)\n", c,
+-			   (unsigned)(radeon_crtc->cursor_offset / pScrn->displayWidth
+-				      / info->CurrentLayout.pixel_bytes));
+-	    }
++	for (c = 0; c < xf86_config->num_crtc; c++) {
++	    xf86CrtcPtr crtc = xf86_config->crtc[c];
++	    RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+ 
++	    radeon_crtc->cursor_offset =
++		radeon_legacy_allocate_memory(pScrn, &radeon_crtc->cursor_mem, size_bytes, align);
++
++	    if (radeon_crtc->cursor_offset == 0)
++		return FALSE;
++
++	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++		       "Will use %d kb for hardware cursor %d at offset 0x%08x\n",
++		       (size_bytes * xf86_config->num_crtc) / 1024,
++		       c,
++		       (unsigned int)radeon_crtc->cursor_offset);
+ 	}
+     }
+-#endif
+ 
+     return xf86_cursors_init (pScreen, CURSOR_WIDTH, CURSOR_HEIGHT,
+ 			      (HARDWARE_CURSOR_TRUECOLOR_AT_8BPP |
+diff --git a/src/radeon_dga.c b/src/radeon_dga.c
+index d623fe4..6b0fabe 100644
+--- a/src/radeon_dga.c
++++ b/src/radeon_dga.c
+@@ -47,6 +47,9 @@
+ 				/* Driver data structures */
+ #include "radeon.h"
+ #include "radeon_probe.h"
++#ifdef XF86DRI
++#include "radeon_drm.h"
++#endif
+ 
+ 				/* X and server generic header files */
+ #include "xf86.h"
+@@ -126,12 +129,12 @@ SECOND_PASS:
+ 	    }
+ #endif /* USE_EXA */
+ #ifdef USE_XAA
+-	    if (!info->useEXA && info->accel) {
+-	      if (info->accel->SetupForSolidFill &&
+-		  info->accel->SubsequentSolidFillRect)
++	    if (!info->useEXA && info->accel_state->accel) {
++	      if (info->accel_state->accel->SetupForSolidFill &&
++		  info->accel_state->accel->SubsequentSolidFillRect)
+ 		 currentMode->flags    |= DGA_FILL_RECT;
+-	      if (info->accel->SetupForScreenToScreenCopy &&
+-		  info->accel->SubsequentScreenToScreenCopy)
++	      if (info->accel_state->accel->SetupForScreenToScreenCopy &&
++		  info->accel_state->accel->SubsequentScreenToScreenCopy)
+ 		 currentMode->flags    |= DGA_BLIT_RECT | DGA_BLIT_RECT_TRANS;
+ 	      if (currentMode->flags &
+ 		  (DGA_PIXMAP_AVAILABLE | DGA_FILL_RECT |
+@@ -265,13 +268,13 @@ Bool RADEONDGAInit(ScreenPtr pScreen)
+     }
+ #endif /* USE_EXA */
+ #ifdef USE_XAA
+-    if (!info->useEXA && info->accel) {
+-	info->DGAFuncs.Sync              = info->accel->Sync;
+-	if (info->accel->SetupForSolidFill &&
+-	    info->accel->SubsequentSolidFillRect)
++    if (!info->useEXA && info->accel_state->accel) {
++	info->DGAFuncs.Sync              = info->accel_state->accel->Sync;
++	if (info->accel_state->accel->SetupForSolidFill &&
++	    info->accel_state->accel->SubsequentSolidFillRect)
+ 	    info->DGAFuncs.FillRect      = RADEON_FillRect;
+-	if (info->accel->SetupForScreenToScreenCopy &&
+-	    info->accel->SubsequentScreenToScreenCopy) {
++	if (info->accel_state->accel->SetupForScreenToScreenCopy &&
++	    info->accel_state->accel->SubsequentScreenToScreenCopy) {
+ 	    info->DGAFuncs.BlitRect      = RADEON_BlitRect;
+ 	    info->DGAFuncs.BlitTransRect = RADEON_BlitTransRect;
+ 	}
+@@ -383,8 +386,8 @@ static void RADEON_FillRect(ScrnInfoPtr pScrn,
+ #endif /* USE_EXA */
+ #ifdef USE_XAA
+     if (!info->useEXA) {
+-	(*info->accel->SetupForSolidFill)(pScrn, color, GXcopy, (uint32_t)(~0));
+-	(*info->accel->SubsequentSolidFillRect)(pScrn, x, y, w, h);
++	(*info->accel_state->accel->SetupForSolidFill)(pScrn, color, GXcopy, (uint32_t)(~0));
++	(*info->accel_state->accel->SubsequentSolidFillRect)(pScrn, x, y, w, h);
+         if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel)
+ 	    RADEON_MARK_SYNC(info, pScrn);
+     }
+@@ -413,10 +416,10 @@ static void RADEON_BlitRect(ScrnInfoPtr pScrn,
+ #endif /* USE_EXA */
+ #ifdef USE_XAA
+     if (!info->useEXA) {
+-	(*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir,
+-						   GXcopy, (uint32_t)(~0), -1);
+-	(*info->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy,
+-						     dstx, dsty, w, h);
++	(*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir,
++								GXcopy, (uint32_t)(~0), -1);
++	(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy,
++								  dstx, dsty, w, h);
+         if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel)
+ 	    RADEON_MARK_SYNC(info, pScrn);
+     }
+@@ -431,14 +434,14 @@ static void RADEON_BlitTransRect(ScrnInfoPtr pScrn,
+     int            xdir = ((srcx < dstx) && (srcy == dsty)) ? -1 : 1;
+     int            ydir = (srcy < dsty) ? -1 : 1;
+ 
+-    info->XAAForceTransBlit = TRUE;
+-    (*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir,
+-					       GXcopy, (uint32_t)(~0), color);
++    info->accel_state->XAAForceTransBlit = TRUE;
++    (*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir,
++							    GXcopy, (uint32_t)(~0), color);
+ 
+-    info->XAAForceTransBlit = FALSE;
++    info->accel_state->XAAForceTransBlit = FALSE;
+ 
+-    (*info->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy,
+-						 dstx, dsty, w, h);
++    (*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, srcx, srcy,
++							      dstx, dsty, w, h);
+ 
+     if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel)
+         RADEON_MARK_SYNC(info, pScrn);
+diff --git a/src/radeon_dri.c b/src/radeon_dri.c
+index 0fc03e4..5542d2b 100644
+--- a/src/radeon_dri.c
++++ b/src/radeon_dri.c
+@@ -46,6 +46,7 @@
+ #include "radeon_video.h"
+ #include "radeon_reg.h"
+ #include "radeon_macros.h"
++#include "radeon_drm.h"
+ #include "radeon_dri.h"
+ #include "radeon_version.h"
+ 
+@@ -58,10 +59,13 @@
+ #define _XF86DRI_SERVER_
+ #include "GL/glxtokens.h"
+ #include "sarea.h"
+-#include "radeon_sarea.h"
+ 
+ static size_t radeon_drm_page_size;
+ 
++#define RADEON_MAX_DRAWABLES 256
++
++extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
++				void **configprivs);
+ 
+ static void RADEONDRITransitionTo2d(ScreenPtr pScreen);
+ static void RADEONDRITransitionTo3d(ScreenPtr pScreen);
+@@ -92,7 +96,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
+     RADEONConfigPrivPtr *pRADEONConfigPtrs = 0;
+     int                  i, accum, stencil, db, use_db;
+ 
+-    use_db = !info->noBackBuffer ? 1 : 0;
++    use_db = !info->dri->noBackBuffer ? 1 : 0;
+ 
+     switch (info->CurrentLayout.pixel_code) {
+     case 8:  /* 8bpp mode is not support */
+@@ -166,7 +170,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
+ 		    pConfigs[i].doubleBuffer   = FALSE;
+ 		pConfigs[i].stereo             = FALSE;
+ 		pConfigs[i].bufferSize         = 16;
+-		pConfigs[i].depthSize          = info->depthBits;
++		pConfigs[i].depthSize          = info->dri->depthBits;
+ 		if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil)
+ 						: stencil) {
+ 		    pConfigs[i].stencilSize    = 8;
+@@ -252,7 +256,7 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
+ 		    pConfigs[i].doubleBuffer   = FALSE;
+ 		pConfigs[i].stereo             = FALSE;
+ 		pConfigs[i].bufferSize         = 32;
+-		pConfigs[i].depthSize          = info->depthBits;
++		pConfigs[i].depthSize          = info->dri->depthBits;
+ 		if (pConfigs[i].depthSize == 24 ? (RADEON_USE_STENCIL - stencil)
+ 						: stencil) {
+ 		    pConfigs[i].stencilSize    = 8;
+@@ -280,9 +284,9 @@ static Bool RADEONInitVisualConfigs(ScreenPtr pScreen)
+ 	break;
+     }
+ 
+-    info->numVisualConfigs   = numConfigs;
+-    info->pVisualConfigs     = pConfigs;
+-    info->pVisualConfigsPriv = pRADEONConfigs;
++    info->dri->numVisualConfigs   = numConfigs;
++    info->dri->pVisualConfigs     = pConfigs;
++    info->dri->pVisualConfigsPriv = pRADEONConfigs;
+     GlxSetVisualConfigs(numConfigs, pConfigs, (void**)pRADEONConfigPtrs);
+     return TRUE;
+ }
+@@ -300,8 +304,8 @@ static Bool RADEONCreateContext(ScreenPtr pScreen, VisualPtr visual,
+     ctx_info = (RADEONDRIContextPtr)contextStore;
+     if (!ctx_info) return FALSE;
+ 
+-    if (drmAddMap(info->drmFD, 0,
+-		  info->perctx_sarea_size,
++    if (drmAddMap(info->dri->drmFD, 0,
++		  info->dri->perctx_sarea_size,
+ 		  DRM_SHM,
+ 		  DRM_REMOVABLE,
+ 		  &ctx_info->sarea_handle) < 0) {
+@@ -311,12 +315,12 @@ static Bool RADEONCreateContext(ScreenPtr pScreen, VisualPtr visual,
+ 	return FALSE;
+     }
+ 
+-    if (drmAddContextPrivateMapping(info->drmFD, hwContext,
++    if (drmAddContextPrivateMapping(info->dri->drmFD, hwContext,
+ 				    ctx_info->sarea_handle) < 0) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "[dri] could not associate private sarea to ctx id (%d)\n",
+ 		   (int)hwContext);
+-	drmRmMap(info->drmFD, ctx_info->sarea_handle);
++	drmRmMap(info->dri->drmFD, ctx_info->sarea_handle);
+ 	return FALSE;
+     }
+ 
+@@ -337,7 +341,7 @@ static void RADEONDestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
+     ctx_info = (RADEONDRIContextPtr)contextStore;
+     if (!ctx_info) return;
+ 
+-    if (drmRmMap(info->drmFD, ctx_info->sarea_handle) < 0) {
++    if (drmRmMap(info->dri->drmFD, ctx_info->sarea_handle) < 0) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "[dri] could not remove private sarea for ctx id (%d)\n",
+ 		   (int)hwContext);
+@@ -356,29 +360,29 @@ static void RADEONEnterServer(ScreenPtr pScreen)
+ {
+     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr  info  = RADEONPTR(pScrn);
+-    RADEONSAREAPrivPtr pSAREAPriv;
++    drm_radeon_sarea_t *pSAREAPriv;
+ 
+ 
+     RADEON_MARK_SYNC(info, pScrn);
+ 
+     pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen);
+-    if (pSAREAPriv->ctxOwner != DRIGetContext(pScrn->pScreen)) {
+-	info->XInited3D = FALSE;
+-	info->needCacheFlush = (info->ChipFamily >= CHIP_FAMILY_R300);
++    if (pSAREAPriv->ctx_owner != DRIGetContext(pScrn->pScreen)) {
++	info->accel_state->XInited3D = FALSE;
++	info->cp->needCacheFlush = (info->ChipFamily >= CHIP_FAMILY_R300);
+     }
+ 
+ #ifdef DAMAGE
+-    if (!info->pDamage && info->allowPageFlip) {
++    if (!info->dri->pDamage && info->dri->allowPageFlip) {
+ 	PixmapPtr pPix  = pScreen->GetScreenPixmap(pScreen);
+-	info->pDamage = DamageCreate(NULL, NULL, DamageReportNone, TRUE,
+-				     pScreen, pPix);
++	info->dri->pDamage = DamageCreate(NULL, NULL, DamageReportNone, TRUE,
++					  pScreen, pPix);
+ 
+-	if (info->pDamage == NULL) {
++	if (info->dri->pDamage == NULL) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "No screen damage record, page flipping disabled\n");
+-	    info->allowPageFlip = 0;
++	    info->dri->allowPageFlip = 0;
+ 	} else {
+-	    DamageRegister(&pPix->drawable, info->pDamage);
++	    DamageRegister(&pPix->drawable, info->dri->pDamage);
+ 
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		       "Damage tracking initialized for page flipping\n");
+@@ -401,8 +405,8 @@ static void RADEONLeaveServer(ScreenPtr pScreen)
+     RING_LOCALS;
+ 
+ #ifdef DAMAGE
+-    if (info->pDamage) {
+-	RegionPtr pDamageReg = DamageRegion(info->pDamage);
++    if (info->dri->pDamage) {
++	RegionPtr pDamageReg = DamageRegion(info->dri->pDamage);
+ 	int nrects = pDamageReg ? REGION_NUM_RECTS(pDamageReg) : 0;
+ 
+ 	if (nrects) {
+@@ -417,7 +421,7 @@ static void RADEONLeaveServer(ScreenPtr pScreen)
+     RADEONCP_RELEASE(pScrn, info);
+ 
+ #ifdef USE_EXA
+-    info->engineMode = EXA_ENGINEMODE_UNKNOWN;
++    info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
+ #endif
+ }
+ 
+@@ -451,17 +455,17 @@ static void RADEONDRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
+ 
+ /* 16-bit depth buffer functions */
+ #define WRITE_DEPTH16(_x, _y, d)					\
+-    *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->frontPitch)) = (d)
++    *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch)) = (d)
+ 
+ #define READ_DEPTH16(d, _x, _y)						\
+-    (d) = *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->frontPitch))
++    (d) = *(uint16_t *)(pointer)(buf + 2*(_x + _y*info->dri->frontPitch))
+ 
+ /* 32-bit depth buffer (stencil and depth simultaneously) functions */
+ #define WRITE_DEPTHSTENCIL32(_x, _y, d)					\
+-    *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->frontPitch)) = (d)
++    *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch)) = (d)
+ 
+ #define READ_DEPTHSTENCIL32(d, _x, _y)					\
+-    (d) = *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->frontPitch))
++    (d) = *(uint32_t *)(pointer)(buf + 4*(_x + _y*info->dri->frontPitch))
+ 
+ /* Screen to screen copy of data in the depth buffer */
+ static void RADEONScreenToScreenCopyDepth(ScrnInfoPtr pScrn,
+@@ -470,7 +474,7 @@ static void RADEONScreenToScreenCopyDepth(ScrnInfoPtr pScrn,
+ 					  int w, int h)
+ {
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
+-    unsigned char *buf  = info->FB + info->depthOffset;
++    unsigned char *buf  = info->FB + info->dri->depthOffset;
+     int            xstart, xend, xdir;
+     int            ystart, yend, ydir;
+     int            x, y, d;
+@@ -641,12 +645,12 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
+     }
+ 
+     /* pretty much a hack. */
+-    info->dst_pitch_offset = info->backPitchOffset;
++    info->accel_state->dst_pitch_offset = info->dri->backPitchOffset;
+     if (info->tilingEnabled)
+-       info->dst_pitch_offset |= RADEON_DST_TILE_MACRO;
++       info->accel_state->dst_pitch_offset |= RADEON_DST_TILE_MACRO;
+ 
+-    (*info->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, GXcopy,
+-					       (uint32_t)(-1), -1);
++    (*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn, xdir, ydir, GXcopy,
++							    (uint32_t)(-1), -1);
+ 
+     for (; nbox-- ; pbox++) {
+ 	int  xa    = pbox->x1;
+@@ -664,12 +668,12 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
+ 	if (w <= 0) continue;
+ 	if (h <= 0) continue;
+ 
+-	(*info->accel->SubsequentScreenToScreenCopy)(pScrn,
+-						     xa, ya,
+-						     destx, desty,
+-						     w, h);
++	(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn,
++								  xa, ya,
++								  destx, desty,
++								  w, h);
+ 
+-	if (info->depthMoves) {
++	if (info->dri->depthMoves) {
+ 	    RADEONScreenToScreenCopyDepth(pScrn,
+ 					  xa, ya,
+ 					  destx, desty,
+@@ -677,14 +681,14 @@ static void RADEONDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
+ 	}
+     }
+ 
+-    info->dst_pitch_offset = info->frontPitchOffset;;
++    info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset;;
+ 
+     xfree(pptNew2);
+     xfree(pboxNew2);
+     xfree(pptNew1);
+     xfree(pboxNew1);
+ 
+-    info->accel->NeedToSync = TRUE;
++    info->accel_state->accel->NeedToSync = TRUE;
+ #endif /* USE_XAA */
+ }
+ 
+@@ -692,36 +696,36 @@ static void RADEONDRIInitGARTValues(RADEONInfoPtr info)
+ {
+     int            s, l;
+ 
+-    info->gartOffset = 0;
++    info->dri->gartOffset = 0;
+ 
+ 				/* Initialize the CP ring buffer data */
+-    info->ringStart       = info->gartOffset;
+-    info->ringMapSize     = info->ringSize*1024*1024 + radeon_drm_page_size;
+-    info->ringSizeLog2QW  = RADEONMinBits(info->ringSize*1024*1024/8)-1;
++    info->dri->ringStart       = info->dri->gartOffset;
++    info->dri->ringMapSize     = info->dri->ringSize*1024*1024 + radeon_drm_page_size;
++    info->dri->ringSizeLog2QW  = RADEONMinBits(info->dri->ringSize*1024*1024/8)-1;
+ 
+-    info->ringReadOffset  = info->ringStart + info->ringMapSize;
+-    info->ringReadMapSize = radeon_drm_page_size;
++    info->dri->ringReadOffset  = info->dri->ringStart + info->dri->ringMapSize;
++    info->dri->ringReadMapSize = radeon_drm_page_size;
+ 
+ 				/* Reserve space for vertex/indirect buffers */
+-    info->bufStart        = info->ringReadOffset + info->ringReadMapSize;
+-    info->bufMapSize      = info->bufSize*1024*1024;
++    info->dri->bufStart        = info->dri->ringReadOffset + info->dri->ringReadMapSize;
++    info->dri->bufMapSize      = info->dri->bufSize*1024*1024;
+ 
+ 				/* Reserve the rest for GART textures */
+-    info->gartTexStart     = info->bufStart + info->bufMapSize;
+-    s = (info->gartSize*1024*1024 - info->gartTexStart);
++    info->dri->gartTexStart     = info->dri->bufStart + info->dri->bufMapSize;
++    s = (info->dri->gartSize*1024*1024 - info->dri->gartTexStart);
+     l = RADEONMinBits((s-1) / RADEON_NR_TEX_REGIONS);
+     if (l < RADEON_LOG_TEX_GRANULARITY) l = RADEON_LOG_TEX_GRANULARITY;
+-    info->gartTexMapSize   = (s >> l) << l;
+-    info->log2GARTTexGran  = l;
++    info->dri->gartTexMapSize   = (s >> l) << l;
++    info->dri->log2GARTTexGran  = l;
+ }
+ 
+ /* Set AGP transfer mode according to requests and constraints */
+ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+     unsigned char *RADEONMMIO = info->MMIO;
+-    unsigned long mode   = drmAgpGetMode(info->drmFD);	/* Default mode */
+-    unsigned int  vendor = drmAgpVendorId(info->drmFD);
+-    unsigned int  device = drmAgpDeviceId(info->drmFD);
++    unsigned long mode   = drmAgpGetMode(info->dri->drmFD);	/* Default mode */
++    unsigned int  vendor = drmAgpVendorId(info->dri->drmFD);
++    unsigned int  device = drmAgpDeviceId(info->dri->drmFD);
+     /* ignore agp 3.0 mode bit from the chip as it's buggy on some cards with
+        pcie-agp rialto bridge chip - use the one from bridge which must match */
+     uint32_t agp_status = (INREG(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode;
+@@ -739,26 +743,26 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
+ 
+     from = X_DEFAULT;
+ 
+-    if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->agpMode)) {
+-	if ((info->agpMode < (is_v3 ? 4 : 1)) ||
+-            (info->agpMode > (is_v3 ? 8 : 4)) ||
+-	    (info->agpMode & (info->agpMode - 1))) {
++    if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->dri->agpMode)) {
++	if ((info->dri->agpMode < (is_v3 ? 4 : 1)) ||
++            (info->dri->agpMode > (is_v3 ? 8 : 4)) ||
++	    (info->dri->agpMode & (info->dri->agpMode - 1))) {
+ 	    xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		       "Illegal AGP Mode: %d (valid values: %s), leaving at "
+-		       "%dx\n", info->agpMode, is_v3 ? "4, 8" : "1, 2, 4",
++		       "%dx\n", info->dri->agpMode, is_v3 ? "4, 8" : "1, 2, 4",
+ 		       defaultMode);
+-	    info->agpMode = defaultMode;
++	    info->dri->agpMode = defaultMode;
+ 	} else
+ 	    from = X_CONFIG;
+     } else
+-	info->agpMode = defaultMode;
++	info->dri->agpMode = defaultMode;
+ 
+-    xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->agpMode);
++    xf86DrvMsg(pScreen->myNum, from, "Using AGP %dx\n", info->dri->agpMode);
+ 
+     mode &= ~RADEON_AGP_MODE_MASK;
+     if (is_v3) {
+ 	/* only set one mode bit for AGPv3 */
+-	switch (info->agpMode) {
++	switch (info->dri->agpMode) {
+ 	case 8:          mode |= RADEON_AGPv3_8X_MODE; break;
+ 	case 4: default: mode |= RADEON_AGPv3_4X_MODE;
+ 	}
+@@ -766,7 +770,7 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
+ 	 *      currently these bits are not used in all tested cards.
+ 	 */
+     } else {
+-	switch (info->agpMode) {
++	switch (info->dri->agpMode) {
+ 	case 4:          mode |= RADEON_AGP_4X_MODE;
+ 	case 2:          mode |= RADEON_AGP_2X_MODE;
+ 	case 1: default: mode |= RADEON_AGP_1X_MODE;
+@@ -800,9 +804,9 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
+ 	       PCI_DEV_VENDOR_ID(info->PciInfo),
+ 	       PCI_DEV_DEVICE_ID(info->PciInfo));
+ 
+-    if (drmAgpEnable(info->drmFD, mode) < 0) {
++    if (drmAgpEnable(info->dri->drmFD, mode) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] AGP not enabled\n");
+-	drmAgpRelease(info->drmFD);
++	drmAgpRelease(info->dri->drmFD);
+ 	return FALSE;
+     }
+ 
+@@ -829,15 +833,15 @@ static void RADEONSetAgpBase(RADEONInfoPtr info, ScreenPtr pScreen)
+      * agp_base_2 ?
+      */
+     if (info->ChipFamily == CHIP_FAMILY_RV515)
+-	OUTMC(pScrn, RV515_MC_AGP_BASE, drmAgpBase(info->drmFD));
++	OUTMC(pScrn, RV515_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
+     else if ((info->ChipFamily >= CHIP_FAMILY_R520) &&
+ 	     (info->ChipFamily <= CHIP_FAMILY_RV570))
+-	OUTMC(pScrn, R520_MC_AGP_BASE, drmAgpBase(info->drmFD));
++	OUTMC(pScrn, R520_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
+     else if ((info->ChipFamily == CHIP_FAMILY_RS690) ||
+ 	     (info->ChipFamily == CHIP_FAMILY_RS740))
+-	OUTMC(pScrn, RS690_MC_AGP_BASE, drmAgpBase(info->drmFD));
++	OUTMC(pScrn, RS690_MC_AGP_BASE, drmAgpBase(info->dri->drmFD));
+     else if (info->ChipFamily < CHIP_FAMILY_RV515)
+-	OUTREG(RADEON_AGP_BASE, drmAgpBase(info->drmFD));
++	OUTREG(RADEON_AGP_BASE, drmAgpBase(info->dri->drmFD));
+ }
+ 
+ /* Initialize the AGP state.  Request memory for use in AGP space, and
+@@ -847,7 +851,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+     int            ret;
+ 
+-    if (drmAgpAcquire(info->drmFD) < 0) {
++    if (drmAgpAcquire(info->dri->drmFD) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_WARNING, "[agp] AGP not available\n");
+ 	return FALSE;
+     }
+@@ -857,101 +861,101 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ 
+     RADEONDRIInitGARTValues(info);
+ 
+-    if ((ret = drmAgpAlloc(info->drmFD, info->gartSize*1024*1024, 0, NULL,
+-			   &info->agpMemHandle)) < 0) {
++    if ((ret = drmAgpAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024, 0, NULL,
++			   &info->dri->agpMemHandle)) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Out of memory (%d)\n", ret);
+-	drmAgpRelease(info->drmFD);
++	drmAgpRelease(info->dri->drmFD);
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[agp] %d kB allocated with handle 0x%08x\n",
+-	       info->gartSize*1024, info->agpMemHandle);
++	       info->dri->gartSize*1024, info->dri->agpMemHandle);
+ 
+-    if (drmAgpBind(info->drmFD,
+-		   info->agpMemHandle, info->gartOffset) < 0) {
++    if (drmAgpBind(info->dri->drmFD,
++		   info->dri->agpMemHandle, info->dri->gartOffset) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not bind\n");
+-	drmAgpFree(info->drmFD, info->agpMemHandle);
+-	drmAgpRelease(info->drmFD);
++	drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle);
++	drmAgpRelease(info->dri->drmFD);
+ 	return FALSE;
+     }
+ 
+-    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,
+-		  DRM_AGP, DRM_READ_ONLY, &info->ringHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize,
++		  DRM_AGP, DRM_READ_ONLY, &info->dri->ringHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not add ring mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+-	       "[agp] ring handle = 0x%08x\n", info->ringHandle);
++	       "[agp] ring handle = 0x%08x\n", info->dri->ringHandle);
+ 
+-    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
+-	       &info->ring) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
++	       &info->dri->ring) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] Could not map ring\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[agp] Ring mapped at 0x%08lx\n",
+-	       (unsigned long)info->ring);
++	       (unsigned long)info->dri->ring);
+ 
+-    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,
+-		  DRM_AGP, DRM_READ_ONLY, &info->ringReadPtrHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize,
++		  DRM_AGP, DRM_READ_ONLY, &info->dri->ringReadPtrHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not add ring read ptr mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[agp] ring read ptr handle = 0x%08x\n",
+-	       info->ringReadPtrHandle);
++	       info->dri->ringReadPtrHandle);
+ 
+-    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
+-	       &info->ringReadPtr) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
++	       &info->dri->ringReadPtr) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not map ring read ptr\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[agp] Ring read ptr mapped at 0x%08lx\n",
+-	       (unsigned long)info->ringReadPtr);
++	       (unsigned long)info->dri->ringReadPtr);
+ 
+-    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,
+-		  DRM_AGP, 0, &info->bufHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
++		  DRM_AGP, 0, &info->dri->bufHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not add vertex/indirect buffers mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[agp] vertex/indirect buffers handle = 0x%08x\n",
+-	       info->bufHandle);
++	       info->dri->bufHandle);
+ 
+-    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
+-	       &info->buf) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
++	       &info->dri->buf) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not map vertex/indirect buffers\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[agp] Vertex/indirect buffers mapped at 0x%08lx\n",
+-	       (unsigned long)info->buf);
++	       (unsigned long)info->dri->buf);
+ 
+-    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize,
+-		  DRM_AGP, 0, &info->gartTexHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize,
++		  DRM_AGP, 0, &info->dri->gartTexHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not add GART texture map mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[agp] GART texture map handle = 0x%08x\n",
+-	       info->gartTexHandle);
++	       info->dri->gartTexHandle);
+ 
+-    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
+-	       &info->gartTex) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
++	       &info->dri->gartTex) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[agp] Could not map GART texture map\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[agp] GART Texture map mapped at 0x%08lx\n",
+-	       (unsigned long)info->gartTex);
++	       (unsigned long)info->dri->gartTex);
+ 
+     RADEONSetAgpBase(info, pScreen);
+ 
+@@ -966,104 +970,104 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+     int  ret;
+     int  flags = DRM_READ_ONLY | DRM_LOCKED | DRM_KERNEL;
+ 
+-    ret = drmScatterGatherAlloc(info->drmFD, info->gartSize*1024*1024,
+-				&info->pciMemHandle);
++    ret = drmScatterGatherAlloc(info->dri->drmFD, info->dri->gartSize*1024*1024,
++				&info->dri->pciMemHandle);
+     if (ret < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Out of memory (%d)\n", ret);
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] %d kB allocated with handle 0x%08x\n",
+-	       info->gartSize*1024, info->pciMemHandle);
++	       info->dri->gartSize*1024, info->dri->pciMemHandle);
+ 
+     RADEONDRIInitGARTValues(info);
+ 
+-    if (drmAddMap(info->drmFD, info->ringStart, info->ringMapSize,
+-		  DRM_SCATTER_GATHER, flags, &info->ringHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->ringStart, info->dri->ringMapSize,
++		  DRM_SCATTER_GATHER, flags, &info->dri->ringHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not add ring mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+-	       "[pci] ring handle = 0x%08x\n", info->ringHandle);
++	       "[pci] ring handle = 0x%08x\n", info->dri->ringHandle);
+ 
+-    if (drmMap(info->drmFD, info->ringHandle, info->ringMapSize,
+-	       &info->ring) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
++	       &info->dri->ring) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "[pci] Could not map ring\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Ring mapped at 0x%08lx\n",
+-	       (unsigned long)info->ring);
++	       (unsigned long)info->dri->ring);
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Ring contents 0x%08lx\n",
+-	       *(unsigned long *)(pointer)info->ring);
++	       *(unsigned long *)(pointer)info->dri->ring);
+ 
+-    if (drmAddMap(info->drmFD, info->ringReadOffset, info->ringReadMapSize,
+-		  DRM_SCATTER_GATHER, flags, &info->ringReadPtrHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->ringReadOffset, info->dri->ringReadMapSize,
++		  DRM_SCATTER_GATHER, flags, &info->dri->ringReadPtrHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not add ring read ptr mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[pci] ring read ptr handle = 0x%08x\n",
+-	       info->ringReadPtrHandle);
++	       info->dri->ringReadPtrHandle);
+ 
+-    if (drmMap(info->drmFD, info->ringReadPtrHandle, info->ringReadMapSize,
+-	       &info->ringReadPtr) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
++	       &info->dri->ringReadPtr) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not map ring read ptr\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Ring read ptr mapped at 0x%08lx\n",
+-	       (unsigned long)info->ringReadPtr);
++	       (unsigned long)info->dri->ringReadPtr);
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Ring read ptr contents 0x%08lx\n",
+-	       *(unsigned long *)(pointer)info->ringReadPtr);
++	       *(unsigned long *)(pointer)info->dri->ringReadPtr);
+ 
+-    if (drmAddMap(info->drmFD, info->bufStart, info->bufMapSize,
+-		  DRM_SCATTER_GATHER, 0, &info->bufHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->bufStart, info->dri->bufMapSize,
++		  DRM_SCATTER_GATHER, 0, &info->dri->bufHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not add vertex/indirect buffers mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[pci] vertex/indirect buffers handle = 0x%08x\n",
+-	       info->bufHandle);
++	       info->dri->bufHandle);
+ 
+-    if (drmMap(info->drmFD, info->bufHandle, info->bufMapSize,
+-	       &info->buf) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
++	       &info->dri->buf) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not map vertex/indirect buffers\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Vertex/indirect buffers mapped at 0x%08lx\n",
+-	       (unsigned long)info->buf);
++	       (unsigned long)info->dri->buf);
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] Vertex/indirect buffers contents 0x%08lx\n",
+-	       *(unsigned long *)(pointer)info->buf);
++	       *(unsigned long *)(pointer)info->dri->buf);
+ 
+-    if (drmAddMap(info->drmFD, info->gartTexStart, info->gartTexMapSize,
+-		  DRM_SCATTER_GATHER, 0, &info->gartTexHandle) < 0) {
++    if (drmAddMap(info->dri->drmFD, info->dri->gartTexStart, info->dri->gartTexMapSize,
++		  DRM_SCATTER_GATHER, 0, &info->dri->gartTexHandle) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not add GART texture map mapping\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+  	       "[pci] GART texture map handle = 0x%08x\n",
+-	       info->gartTexHandle);
++	       info->dri->gartTexHandle);
+ 
+-    if (drmMap(info->drmFD, info->gartTexHandle, info->gartTexMapSize,
+-	       &info->gartTex) < 0) {
++    if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
++	       &info->dri->gartTex) < 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[pci] Could not map GART texture map\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[pci] GART Texture map mapped at 0x%08lx\n",
+-	       (unsigned long)info->gartTex);
++	       (unsigned long)info->dri->gartTex);
+ 
+     return TRUE;
+ }
+@@ -1074,13 +1078,13 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+ 				/* Map registers */
+-    info->registerSize = info->MMIOSize;
+-    if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize,
+-		  DRM_REGISTERS, DRM_READ_ONLY, &info->registerHandle) < 0) {
++    info->dri->registerSize = info->MMIOSize;
++    if (drmAddMap(info->dri->drmFD, info->MMIOAddr, info->dri->registerSize,
++		  DRM_REGISTERS, DRM_READ_ONLY, &info->dri->registerHandle) < 0) {
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+-	       "[drm] register handle = 0x%08x\n", info->registerHandle);
++	       "[drm] register handle = 0x%08x\n", info->dri->registerHandle);
+ 
+     return TRUE;
+ }
+@@ -1090,43 +1094,43 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];
+     int            cpp   = info->CurrentLayout.pixel_bytes;
+-    drmRadeonInit  drmInfo;
++    drm_radeon_init_t  drmInfo;
+ 
+-    memset(&drmInfo, 0, sizeof(drmRadeonInit));
++    memset(&drmInfo, 0, sizeof(drm_radeon_init_t));
+     if ( info->ChipFamily >= CHIP_FAMILY_R300 )
+-       drmInfo.func             = DRM_RADEON_INIT_R300_CP;
++       drmInfo.func             = RADEON_INIT_R300_CP;
+     else
+     if ( info->ChipFamily >= CHIP_FAMILY_R200 )
+-       drmInfo.func		= DRM_RADEON_INIT_R200_CP;
++       drmInfo.func		= RADEON_INIT_R200_CP;
+     else
+-       drmInfo.func		= DRM_RADEON_INIT_CP;
++       drmInfo.func		= RADEON_INIT_CP;
+ 
+     drmInfo.sarea_priv_offset   = sizeof(XF86DRISAREARec);
+     drmInfo.is_pci              = (info->cardType!=CARD_AGP);
+-    drmInfo.cp_mode             = info->CPMode;
+-    drmInfo.gart_size           = info->gartSize*1024*1024;
+-    drmInfo.ring_size           = info->ringSize*1024*1024;
+-    drmInfo.usec_timeout        = info->CPusecTimeout;
++    drmInfo.cp_mode             = RADEON_CSQ_PRIBM_INDBM;
++    drmInfo.gart_size           = info->dri->gartSize*1024*1024;
++    drmInfo.ring_size           = info->dri->ringSize*1024*1024;
++    drmInfo.usec_timeout        = info->cp->CPusecTimeout;
+ 
+     drmInfo.fb_bpp              = info->CurrentLayout.pixel_code;
+-    drmInfo.depth_bpp           = (info->depthBits - 8) * 2;
+-
+-    drmInfo.front_offset        = info->frontOffset;
+-    drmInfo.front_pitch         = info->frontPitch * cpp;
+-    drmInfo.back_offset         = info->backOffset;
+-    drmInfo.back_pitch          = info->backPitch * cpp;
+-    drmInfo.depth_offset        = info->depthOffset;
+-    drmInfo.depth_pitch         = info->depthPitch * drmInfo.depth_bpp / 8;
+-
+-    drmInfo.fb_offset           = info->fbHandle;
+-    drmInfo.mmio_offset         = info->registerHandle;
+-    drmInfo.ring_offset         = info->ringHandle;
+-    drmInfo.ring_rptr_offset    = info->ringReadPtrHandle;
+-    drmInfo.buffers_offset      = info->bufHandle;
+-    drmInfo.gart_textures_offset= info->gartTexHandle;
+-
+-    if (drmCommandWrite(info->drmFD, DRM_RADEON_CP_INIT,
+-			&drmInfo, sizeof(drmRadeonInit)) < 0)
++    drmInfo.depth_bpp           = (info->dri->depthBits - 8) * 2;
++
++    drmInfo.front_offset        = info->dri->frontOffset;
++    drmInfo.front_pitch         = info->dri->frontPitch * cpp;
++    drmInfo.back_offset         = info->dri->backOffset;
++    drmInfo.back_pitch          = info->dri->backPitch * cpp;
++    drmInfo.depth_offset        = info->dri->depthOffset;
++    drmInfo.depth_pitch         = info->dri->depthPitch * drmInfo.depth_bpp / 8;
++
++    drmInfo.fb_offset           = info->dri->fbHandle;
++    drmInfo.mmio_offset         = info->dri->registerHandle;
++    drmInfo.ring_offset         = info->dri->ringHandle;
++    drmInfo.ring_rptr_offset    = info->dri->ringReadPtrHandle;
++    drmInfo.buffers_offset      = info->dri->bufHandle;
++    drmInfo.gart_textures_offset= info->dri->gartTexHandle;
++
++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT,
++			&drmInfo, sizeof(drm_radeon_init_t)) < 0)
+ 	return FALSE;
+ 
+     /* DRM_RADEON_CP_INIT does an engine reset, which resets some engine
+@@ -1140,21 +1144,21 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ 
+ static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+-    drmRadeonMemInitHeap drmHeap;
++    drm_radeon_mem_init_heap_t drmHeap;
+ 
+     /* Start up the simple memory manager for GART space */
+     drmHeap.region = RADEON_MEM_REGION_GART;
+     drmHeap.start  = 0;
+-    drmHeap.size   = info->gartTexMapSize;
++    drmHeap.size   = info->dri->gartTexMapSize;
+ 
+-    if (drmCommandWrite(info->drmFD, DRM_RADEON_INIT_HEAP,
++    if (drmCommandWrite(info->dri->drmFD, DRM_RADEON_INIT_HEAP,
+ 			&drmHeap, sizeof(drmHeap))) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[drm] Failed to initialize GART heap manager\n");
+     } else {
+ 	xf86DrvMsg(pScreen->myNum, X_INFO,
+ 		   "[drm] Initialized kernel GART heap manager, %d\n",
+-		   info->gartTexMapSize);
++		   info->dri->gartTexMapSize);
+     }
+ }
+ 
+@@ -1164,29 +1168,29 @@ static void RADEONDRIGartHeapInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ static Bool RADEONDRIBufInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+ 				/* Initialize vertex buffers */
+-    info->bufNumBufs = drmAddBufs(info->drmFD,
+-				  info->bufMapSize / RADEON_BUFFER_SIZE,
+-				  RADEON_BUFFER_SIZE,
+-				  (info->cardType!=CARD_AGP) ? DRM_SG_BUFFER : DRM_AGP_BUFFER,
+-				  info->bufStart);
++    info->dri->bufNumBufs = drmAddBufs(info->dri->drmFD,
++				       info->dri->bufMapSize / RADEON_BUFFER_SIZE,
++				       RADEON_BUFFER_SIZE,
++				       (info->cardType!=CARD_AGP) ? DRM_SG_BUFFER : DRM_AGP_BUFFER,
++				       info->dri->bufStart);
+ 
+-    if (info->bufNumBufs <= 0) {
++    if (info->dri->bufNumBufs <= 0) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[drm] Could not create vertex/indirect buffers list\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[drm] Added %d %d byte vertex/indirect buffers\n",
+-	       info->bufNumBufs, RADEON_BUFFER_SIZE);
++	       info->dri->bufNumBufs, RADEON_BUFFER_SIZE);
+ 
+-    if (!(info->buffers = drmMapBufs(info->drmFD))) {
++    if (!(info->dri->buffers = drmMapBufs(info->dri->drmFD))) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[drm] Failed to map vertex/indirect buffers list\n");
+ 	return FALSE;
+     }
+     xf86DrvMsg(pScreen->myNum, X_INFO,
+ 	       "[drm] Mapped %d vertex/indirect buffers\n",
+-	       info->buffers->count);
++	       info->dri->buffers->count);
+ 
+     return TRUE;
+ }
+@@ -1195,29 +1199,35 @@ static void RADEONDRIIrqInit(RADEONInfoPtr info, ScreenPtr pScreen)
+ {
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ 
+-    if (!info->irq) {
+-	info->irq = drmGetInterruptFromBusID(
+-	    info->drmFD,
++    if (!info->dri->irq) {
++	info->dri->irq = drmGetInterruptFromBusID(
++	    info->dri->drmFD,
+ 	    PCI_CFG_BUS(info->PciInfo),
+ 	    PCI_CFG_DEV(info->PciInfo),
+ 	    PCI_CFG_FUNC(info->PciInfo));
+ 
+-	if ((drmCtlInstHandler(info->drmFD, info->irq)) != 0) {
++	if ((drmCtlInstHandler(info->dri->drmFD, info->dri->irq)) != 0) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		       "[drm] failure adding irq handler, "
+ 		       "there is a device already using that irq\n"
+ 		       "[drm] falling back to irq-free operation\n");
+-	    info->irq = 0;
++	    info->dri->irq = 0;
+ 	} else {
+ 	    unsigned char *RADEONMMIO = info->MMIO;
+ 	    info->ModeReg->gen_int_cntl = INREG( RADEON_GEN_INT_CNTL );
++
++	    /* Let the DRM know it can safely disable the vblank interrupts */
++	    radeon_crtc_modeset_ioctl(XF86_CRTC_CONFIG_PTR(pScrn)->crtc[0],
++				      FALSE);
++	    radeon_crtc_modeset_ioctl(XF86_CRTC_CONFIG_PTR(pScrn)->crtc[0],
++				      TRUE);
+ 	}
+     }
+ 
+-    if (info->irq)
++    if (info->dri->irq)
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "[drm] dma control initialized, using IRQ %d\n",
+-		   info->irq);
++		   info->dri->irq);
+ }
+ 
+ 
+@@ -1233,7 +1243,7 @@ static void RADEONDRICPInit(ScrnInfoPtr pScrn)
+     RADEONCP_START(pScrn, info);
+ #ifdef USE_XAA
+     if (!info->useEXA)
+-	info->dst_pitch_offset = info->frontPitchOffset;
++	info->accel_state->dst_pitch_offset = info->dri->frontPitchOffset;
+ #endif
+ }
+ 
+@@ -1274,16 +1284,16 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+ 
+     /* Check the lib version */
+     if (xf86LoaderCheckSymbol("drmGetLibVersion"))
+-	info->pLibDRMVersion = drmGetLibVersion(info->drmFD);
+-    if (info->pLibDRMVersion == NULL) {
++	info->dri->pLibDRMVersion = drmGetLibVersion(info->dri->drmFD);
++    if (info->dri->pLibDRMVersion == NULL) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "[dri] RADEONDRIGetVersion failed because libDRM is really "
+ 		   "way to old to even get a version number out of it.\n"
+ 		   "[dri] Disabling DRI.\n");
+ 	return FALSE;
+     }
+-    if (info->pLibDRMVersion->version_major != 1 ||
+-	info->pLibDRMVersion->version_minor < 2) {
++    if (info->dri->pLibDRMVersion->version_major != 1 ||
++	info->dri->pLibDRMVersion->version_minor < 2) {
+ 	    /* incompatible drm library version */
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "[dri] RADEONDRIGetVersion failed because of a "
+@@ -1291,11 +1301,11 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+ 		   "[dri] libdrm.a module version is %d.%d.%d but "
+ 		   "version 1.2.x is needed.\n"
+ 		   "[dri] Disabling DRI.\n",
+-		   info->pLibDRMVersion->version_major,
+-		   info->pLibDRMVersion->version_minor,
+-		   info->pLibDRMVersion->version_patchlevel);
+-	drmFreeVersion(info->pLibDRMVersion);
+-	info->pLibDRMVersion = NULL;
++		   info->dri->pLibDRMVersion->version_major,
++		   info->dri->pLibDRMVersion->version_minor,
++		   info->dri->pLibDRMVersion->version_patchlevel);
++	drmFreeVersion(info->dri->pLibDRMVersion);
++	info->dri->pLibDRMVersion = NULL;
+ 	return FALSE;
+     }
+ 
+@@ -1322,9 +1332,9 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+     }
+ 
+     /* Get DRM version & close DRM */
+-    info->pKernelDRMVersion = drmGetVersion(fd);
++    info->dri->pKernelDRMVersion = drmGetVersion(fd);
+     drmClose(fd);
+-    if (info->pKernelDRMVersion == NULL) {
++    if (info->dri->pKernelDRMVersion == NULL) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "[dri] RADEONDRIGetVersion failed to get the DRM version\n"
+ 		   "[dri] Disabling DRI.\n");
+@@ -1344,10 +1354,10 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+     }
+ 
+     /* We don't, bummer ! */
+-    if (info->pKernelDRMVersion->version_major != 1 ||
+-	info->pKernelDRMVersion->version_minor < req_minor ||
+-	(info->pKernelDRMVersion->version_minor == req_minor &&
+-	 info->pKernelDRMVersion->version_patchlevel < req_patch)) {
++    if (info->dri->pKernelDRMVersion->version_major != 1 ||
++	info->dri->pKernelDRMVersion->version_minor < req_minor ||
++	(info->dri->pKernelDRMVersion->version_minor == req_minor &&
++	 info->dri->pKernelDRMVersion->version_patchlevel < req_patch)) {
+         /* Incompatible drm version */
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "[dri] RADEONDRIGetVersion failed because of a version "
+@@ -1355,13 +1365,13 @@ Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
+ 		   "[dri] radeon.o kernel module version is %d.%d.%d "
+ 		   "but version 1.%d.%d or newer is needed.\n"
+ 		   "[dri] Disabling DRI.\n",
+-		   info->pKernelDRMVersion->version_major,
+-		   info->pKernelDRMVersion->version_minor,
+-		   info->pKernelDRMVersion->version_patchlevel,
++		   info->dri->pKernelDRMVersion->version_major,
++		   info->dri->pKernelDRMVersion->version_minor,
++		   info->dri->pKernelDRMVersion->version_patchlevel,
+ 		   req_minor,
+ 		   req_patch);
+-	drmFreeVersion(info->pKernelDRMVersion);
+-	info->pKernelDRMVersion = NULL;
++	drmFreeVersion(info->dri->pKernelDRMVersion);
++	info->dri->pKernelDRMVersion = NULL;
+ 	return FALSE;
+     }
+ 
+@@ -1377,7 +1387,7 @@ Bool RADEONDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on)
+     if (!info->want_vblank_interrupts)
+         on = FALSE;
+ 
+-    if (info->directRenderingEnabled && info->pKernelDRMVersion->version_minor >= 28) {
++    if (info->directRenderingEnabled && info->dri->pKernelDRMVersion->version_minor >= 28) {
+         if (on) {
+   	    if (xf86_config->num_crtc > 1 && xf86_config->crtc[1]->enabled)
+ 	        value = DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2;
+@@ -1406,7 +1416,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+     DRIInfoPtr     pDRIInfo;
+     RADEONDRIPtr   pRADEONDRI;
+ 
+-    info->DRICloseScreen = NULL;
++    info->dri->DRICloseScreen = NULL;
+ 
+     switch (info->CurrentLayout.pixel_code) {
+     case 8:
+@@ -1432,7 +1442,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+      */
+     if (!(pDRIInfo = DRICreateInfoRec())) return FALSE;
+ 
+-    info->pDRIInfo                       = pDRIInfo;
++    info->dri->pDRIInfo                       = pDRIInfo;
+     pDRIInfo->drmDriverName              = RADEON_DRIVER_NAME;
+ 
+     if ( (info->ChipFamily >= CHIP_FAMILY_R300) ) {
+@@ -1453,11 +1463,10 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+ 		PCI_DEV_DEV(info->PciInfo),
+ 		PCI_DEV_FUNC(info->PciInfo));
+     }
+-    pDRIInfo->ddxDriverMajorVersion      = info->allowColorTiling ?
+-    				RADEON_VERSION_MAJOR_TILED : RADEON_VERSION_MAJOR;
+-    pDRIInfo->ddxDriverMinorVersion      = RADEON_VERSION_MINOR;
+-    pDRIInfo->ddxDriverPatchVersion      = RADEON_VERSION_PATCH;
+-    pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr + info->frontOffset;
++    pDRIInfo->ddxDriverMajorVersion      = info->allowColorTiling ? 5 : 4;
++    pDRIInfo->ddxDriverMinorVersion      = 3;
++    pDRIInfo->ddxDriverPatchVersion      = 0;
++    pDRIInfo->frameBufferPhysicalAddress = (void *)info->LinearAddr + info->dri->frontOffset;
+     pDRIInfo->frameBufferSize            = info->FbMapSize - info->FbSecureSize;
+     pDRIInfo->frameBufferStride          = (pScrn->displayWidth *
+ 					    info->CurrentLayout.pixel_bytes);
+@@ -1487,7 +1496,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+     /* For now the mapping works by using a fixed size defined
+      * in the SAREA header
+      */
+-    if (sizeof(XF86DRISAREARec)+sizeof(RADEONSAREAPriv) > SAREA_MAX) {
++    if (sizeof(XF86DRISAREARec)+sizeof(drm_radeon_sarea_t) > SAREA_MAX) {
+ 	ErrorF("Data does not fit in SAREA\n");
+ 	return FALSE;
+     }
+@@ -1495,8 +1504,8 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+ #endif
+ 
+     if (!(pRADEONDRI = (RADEONDRIPtr)xcalloc(sizeof(RADEONDRIRec),1))) {
+-	DRIDestroyInfoRec(info->pDRIInfo);
+-	info->pDRIInfo = NULL;
++	DRIDestroyInfoRec(info->dri->pDRIInfo);
++	info->dri->pDRIInfo = NULL;
+ 	return FALSE;
+     }
+     pDRIInfo->devPrivate     = pRADEONDRI;
+@@ -1538,7 +1547,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+     }
+ #endif
+ 
+-    if (!DRIScreenInit(pScreen, pDRIInfo, &info->drmFD)) {
++    if (!DRIScreenInit(pScreen, pDRIInfo, &info->dri->drmFD)) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR,
+ 		   "[dri] DRIScreenInit failed.  Disabling DRI.\n");
+ 	xfree(pDRIInfo->devPrivate);
+@@ -1581,7 +1590,7 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
+ 	void *scratch_ptr;
+         int scratch_int;
+ 
+-	DRIGetDeviceInfo(pScreen, &info->fbHandle,
++	DRIGetDeviceInfo(pScreen, &info->dri->fbHandle,
+                          &scratch_int, &scratch_int,
+                          &scratch_int, &scratch_int,
+                          &scratch_ptr);
+@@ -1605,7 +1614,7 @@ static Bool RADEONDRIDoCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ 
+     RADEONDRICloseScreen(pScreen);
+ 
+-    pScreen->CloseScreen = info->DRICloseScreen;
++    pScreen->CloseScreen = info->dri->DRICloseScreen;
+     return (*pScreen->CloseScreen)(scrnIndex, pScreen);
+ }
+ 
+@@ -1617,11 +1626,11 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
+ {
+     ScrnInfoPtr         pScrn = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr       info  = RADEONPTR(pScrn);
+-    RADEONSAREAPrivPtr  pSAREAPriv;
++    drm_radeon_sarea_t  *pSAREAPriv;
+     RADEONDRIPtr        pRADEONDRI;
+ 
+-    info->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
+-    /* info->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */
++    info->dri->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
++    /* info->dri->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP; */
+ 
+     /* NOTE: DRIFinishScreenInit must be called before *DRIKernelInit
+      * because *DRIKernelInit requires that the hardware lock is held by
+@@ -1655,10 +1664,10 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
+     RADEONDRICPInit(pScrn);
+ 
+     /* Initialize the SAREA private data structure */
+-    pSAREAPriv = (RADEONSAREAPrivPtr)DRIGetSAREAPrivate(pScreen);
++    pSAREAPriv = (drm_radeon_sarea_t*)DRIGetSAREAPrivate(pScreen);
+     memset(pSAREAPriv, 0, sizeof(*pSAREAPriv));
+ 
+-    pRADEONDRI                    = (RADEONDRIPtr)info->pDRIInfo->devPrivate;
++    pRADEONDRI                    = (RADEONDRIPtr)info->dri->pDRIInfo->devPrivate;
+ 
+     pRADEONDRI->deviceID          = info->Chipset;
+     pRADEONDRI->width             = pScrn->virtualX;
+@@ -1667,40 +1676,40 @@ Bool RADEONDRIFinishScreenInit(ScreenPtr pScreen)
+     pRADEONDRI->bpp               = pScrn->bitsPerPixel;
+ 
+     pRADEONDRI->IsPCI             = (info->cardType!=CARD_AGP);
+-    pRADEONDRI->AGPMode           = info->agpMode;
++    pRADEONDRI->AGPMode           = info->dri->agpMode;
+ 
+-    pRADEONDRI->frontOffset       = info->frontOffset;
+-    pRADEONDRI->frontPitch        = info->frontPitch;
+-    pRADEONDRI->backOffset        = info->backOffset;
+-    pRADEONDRI->backPitch         = info->backPitch;
+-    pRADEONDRI->depthOffset       = info->depthOffset;
+-    pRADEONDRI->depthPitch        = info->depthPitch;
+-    pRADEONDRI->textureOffset     = info->textureOffset;
+-    pRADEONDRI->textureSize       = info->textureSize;
+-    pRADEONDRI->log2TexGran       = info->log2TexGran;
++    pRADEONDRI->frontOffset       = info->dri->frontOffset;
++    pRADEONDRI->frontPitch        = info->dri->frontPitch;
++    pRADEONDRI->backOffset        = info->dri->backOffset;
++    pRADEONDRI->backPitch         = info->dri->backPitch;
++    pRADEONDRI->depthOffset       = info->dri->depthOffset;
++    pRADEONDRI->depthPitch        = info->dri->depthPitch;
++    pRADEONDRI->textureOffset     = info->dri->textureOffset;
++    pRADEONDRI->textureSize       = info->dri->textureSize;
++    pRADEONDRI->log2TexGran       = info->dri->log2TexGran;
+ 
+-    pRADEONDRI->registerHandle    = info->registerHandle;
+-    pRADEONDRI->registerSize      = info->registerSize;
++    pRADEONDRI->registerHandle    = info->dri->registerHandle;
++    pRADEONDRI->registerSize      = info->dri->registerSize;
+ 
+-    pRADEONDRI->statusHandle      = info->ringReadPtrHandle;
+-    pRADEONDRI->statusSize        = info->ringReadMapSize;
++    pRADEONDRI->statusHandle      = info->dri->ringReadPtrHandle;
++    pRADEONDRI->statusSize        = info->dri->ringReadMapSize;
+ 
+-    pRADEONDRI->gartTexHandle     = info->gartTexHandle;
+-    pRADEONDRI->gartTexMapSize    = info->gartTexMapSize;
+-    pRADEONDRI->log2GARTTexGran   = info->log2GARTTexGran;
+-    pRADEONDRI->gartTexOffset     = info->gartTexStart;
++    pRADEONDRI->gartTexHandle     = info->dri->gartTexHandle;
++    pRADEONDRI->gartTexMapSize    = info->dri->gartTexMapSize;
++    pRADEONDRI->log2GARTTexGran   = info->dri->log2GARTTexGran;
++    pRADEONDRI->gartTexOffset     = info->dri->gartTexStart;
+ 
+     pRADEONDRI->sarea_priv_offset = sizeof(XF86DRISAREARec);
+ 
+ #ifdef PER_CONTEXT_SAREA
+     /* Set per-context SAREA size */
+-    pRADEONDRI->perctx_sarea_size = info->perctx_sarea_size;
++    pRADEONDRI->perctx_sarea_size = info->dri->perctx_sarea_size;
+ #endif
+ 
+     info->directRenderingInited = TRUE;
+ 
+     /* Wrap CloseScreen */
+-    info->DRICloseScreen = pScreen->CloseScreen;
++    info->dri->DRICloseScreen = pScreen->CloseScreen;
+     pScreen->CloseScreen = RADEONDRIDoCloseScreen;
+ 
+     /* disable vblank at startup */
+@@ -1721,7 +1730,7 @@ void RADEONDRIResume(ScreenPtr pScreen)
+     ScrnInfoPtr   pScrn   = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr info    = RADEONPTR(pScrn);
+ 
+-    if (info->pKernelDRMVersion->version_minor >= 9) {
++    if (info->dri->pKernelDRMVersion->version_minor >= 9) {
+ 	xf86DrvMsg(pScreen->myNum, X_INFO,
+ 		   "[RESUME] Attempting to re-init Radeon hardware.\n");
+     } else {
+@@ -1738,7 +1747,7 @@ void RADEONDRIResume(ScreenPtr pScreen)
+ 	RADEONSetAgpBase(info, pScreen);
+     }
+ 
+-    _ret = drmCommandNone(info->drmFD, DRM_RADEON_CP_RESUME);
++    _ret = drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_RESUME);
+     if (_ret) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "%s: CP resume %d\n", __FUNCTION__, _ret);
+@@ -1777,86 +1786,86 @@ void RADEONDRICloseScreen(ScreenPtr pScreen)
+ {
+     ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr  info  = RADEONPTR(pScrn);
+-    drmRadeonInit  drmInfo;
++    drm_radeon_init_t  drmInfo;
+ 
+      xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		    "RADEONDRICloseScreen\n");
+ 
+ #ifdef DAMAGE
+-     REGION_UNINIT(pScreen, &info->driRegion);
++     REGION_UNINIT(pScreen, &info->dri->driRegion);
+ #endif
+ 
+-     if (info->irq) {
++     if (info->dri->irq) {
+ 	RADEONDRISetVBlankInterrupt (pScrn, FALSE);
+-	drmCtlUninstHandler(info->drmFD);
+-	info->irq = 0;
++	drmCtlUninstHandler(info->dri->drmFD);
++	info->dri->irq = 0;
+ 	info->ModeReg->gen_int_cntl = 0;
+     }
+ 
+     /* De-allocate vertex buffers */
+-    if (info->buffers) {
+-	drmUnmapBufs(info->buffers);
+-	info->buffers = NULL;
++    if (info->dri->buffers) {
++	drmUnmapBufs(info->dri->buffers);
++	info->dri->buffers = NULL;
+     }
+ 
+     /* De-allocate all kernel resources */
+-    memset(&drmInfo, 0, sizeof(drmRadeonInit));
+-    drmInfo.func = DRM_RADEON_CLEANUP_CP;
+-    drmCommandWrite(info->drmFD, DRM_RADEON_CP_INIT,
+-		    &drmInfo, sizeof(drmRadeonInit));
++    memset(&drmInfo, 0, sizeof(drm_radeon_init_t));
++    drmInfo.func = RADEON_CLEANUP_CP;
++    drmCommandWrite(info->dri->drmFD, DRM_RADEON_CP_INIT,
++		    &drmInfo, sizeof(drm_radeon_init_t));
+ 
+     /* De-allocate all GART resources */
+-    if (info->gartTex) {
+-	drmUnmap(info->gartTex, info->gartTexMapSize);
+-	info->gartTex = NULL;
++    if (info->dri->gartTex) {
++	drmUnmap(info->dri->gartTex, info->dri->gartTexMapSize);
++	info->dri->gartTex = NULL;
+     }
+-    if (info->buf) {
+-	drmUnmap(info->buf, info->bufMapSize);
+-	info->buf = NULL;
++    if (info->dri->buf) {
++	drmUnmap(info->dri->buf, info->dri->bufMapSize);
++	info->dri->buf = NULL;
+     }
+-    if (info->ringReadPtr) {
+-	drmUnmap(info->ringReadPtr, info->ringReadMapSize);
+-	info->ringReadPtr = NULL;
++    if (info->dri->ringReadPtr) {
++	drmUnmap(info->dri->ringReadPtr, info->dri->ringReadMapSize);
++	info->dri->ringReadPtr = NULL;
+     }
+-    if (info->ring) {
+-	drmUnmap(info->ring, info->ringMapSize);
+-	info->ring = NULL;
++    if (info->dri->ring) {
++	drmUnmap(info->dri->ring, info->dri->ringMapSize);
++	info->dri->ring = NULL;
+     }
+-    if (info->agpMemHandle != DRM_AGP_NO_HANDLE) {
+-	drmAgpUnbind(info->drmFD, info->agpMemHandle);
+-	drmAgpFree(info->drmFD, info->agpMemHandle);
+-	info->agpMemHandle = DRM_AGP_NO_HANDLE;
+-	drmAgpRelease(info->drmFD);
++    if (info->dri->agpMemHandle != DRM_AGP_NO_HANDLE) {
++	drmAgpUnbind(info->dri->drmFD, info->dri->agpMemHandle);
++	drmAgpFree(info->dri->drmFD, info->dri->agpMemHandle);
++	info->dri->agpMemHandle = DRM_AGP_NO_HANDLE;
++	drmAgpRelease(info->dri->drmFD);
+     }
+-    if (info->pciMemHandle) {
+-	drmScatterGatherFree(info->drmFD, info->pciMemHandle);
+-	info->pciMemHandle = 0;
++    if (info->dri->pciMemHandle) {
++	drmScatterGatherFree(info->dri->drmFD, info->dri->pciMemHandle);
++	info->dri->pciMemHandle = 0;
+     }
+ 
+-    if (info->pciGartBackup) {
+-	xfree(info->pciGartBackup);
+-	info->pciGartBackup = NULL;
++    if (info->dri->pciGartBackup) {
++	xfree(info->dri->pciGartBackup);
++	info->dri->pciGartBackup = NULL;
+     }
+ 
+     /* De-allocate all DRI resources */
+     DRICloseScreen(pScreen);
+ 
+     /* De-allocate all DRI data structures */
+-    if (info->pDRIInfo) {
+-	if (info->pDRIInfo->devPrivate) {
+-	    xfree(info->pDRIInfo->devPrivate);
+-	    info->pDRIInfo->devPrivate = NULL;
++    if (info->dri->pDRIInfo) {
++	if (info->dri->pDRIInfo->devPrivate) {
++	    xfree(info->dri->pDRIInfo->devPrivate);
++	    info->dri->pDRIInfo->devPrivate = NULL;
+ 	}
+-	DRIDestroyInfoRec(info->pDRIInfo);
+-	info->pDRIInfo = NULL;
++	DRIDestroyInfoRec(info->dri->pDRIInfo);
++	info->dri->pDRIInfo = NULL;
+     }
+-    if (info->pVisualConfigs) {
+-	xfree(info->pVisualConfigs);
+-	info->pVisualConfigs = NULL;
++    if (info->dri->pVisualConfigs) {
++	xfree(info->dri->pVisualConfigs);
++	info->dri->pVisualConfigs = NULL;
+     }
+-    if (info->pVisualConfigsPriv) {
+-	xfree(info->pVisualConfigsPriv);
+-	info->pVisualConfigsPriv = NULL;
++    if (info->dri->pVisualConfigsPriv) {
++	xfree(info->dri->pVisualConfigsPriv);
++	info->dri->pVisualConfigsPriv = NULL;
+     }
+ }
+ 
+@@ -1885,24 +1894,24 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg)
+     RADEONInfoPtr       info       = RADEONPTR(pScrn);
+     int                 i, num;
+     ScreenPtr           pScreen    = pScrn->pScreen;
+-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen);
++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen);
+ #ifdef USE_EXA
+     PixmapPtr           pPix = pScreen->GetScreenPixmap(pScreen);
+ #endif
+     RegionRec region;
+     BoxPtr pbox;
+ 
+-    if (!info->directRenderingInited || !info->CPStarted)
++    if (!info->directRenderingInited || !info->cp->CPStarted)
+ 	return;
+ 
+     /* Don't want to do this when no 3d is active and pages are
+      * right-way-round
+      */
+-    if (!pSAREAPriv->pfAllowPageFlip && pSAREAPriv->pfCurrentPage == 0)
++    if (!pSAREAPriv->pfState && pSAREAPriv->pfCurrentPage == 0)
+ 	return;
+ 
+     REGION_NULL(pScreen, &region);
+-    REGION_SUBTRACT(pScreen, &region, pReg, &info->driRegion);
++    REGION_SUBTRACT(pScreen, &region, pReg, &info->dri->driRegion);
+ 
+     num = REGION_NUM_RECTS(&region);
+ 
+@@ -1919,9 +1928,9 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg)
+ 	uint32_t src_pitch_offset, dst_pitch_offset, datatype;
+ 
+ 	RADEONGetPixmapOffsetPitch(pPix, &src_pitch_offset);
+-	dst_pitch_offset = src_pitch_offset + (info->backOffset >> 10);
++	dst_pitch_offset = src_pitch_offset + (info->dri->backOffset >> 10);
+ 	RADEONGetDatatypeBpp(pScrn->bitsPerPixel, &datatype);
+-	info->xdir = info->ydir = 1;
++	info->accel_state->xdir = info->accel_state->ydir = 1;
+ 
+ 	RADEONDoPrepareCopyCP(pScrn, src_pitch_offset, dst_pitch_offset, datatype,
+ 			      GXcopy, ~0);
+@@ -1931,13 +1940,14 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg)
+ #ifdef USE_XAA
+     if (!info->useEXA) {
+ 	/* Make sure accel has been properly inited */
+-	if (info->accel == NULL || info->accel->SetupForScreenToScreenCopy == NULL)
++	if (info->accel_state->accel == NULL ||
++	    info->accel_state->accel->SetupForScreenToScreenCopy == NULL)
+ 	    goto out;
+ 	if (info->tilingEnabled)
+-	    info->dst_pitch_offset |= RADEON_DST_TILE_MACRO;
+-	(*info->accel->SetupForScreenToScreenCopy)(pScrn,
+-						   1, 1, GXcopy,
+-						   (uint32_t)(-1), -1);
++	    info->accel_state->dst_pitch_offset |= RADEON_DST_TILE_MACRO;
++	(*info->accel_state->accel->SetupForScreenToScreenCopy)(pScrn,
++								1, 1, GXcopy,
++								(uint32_t)(-1), -1);
+     }
+ #endif
+ 
+@@ -1954,23 +1964,23 @@ static void RADEONDRIRefreshArea(ScrnInfoPtr pScrn, RegionPtr pReg)
+ 
+ #ifdef USE_XAA
+ 	    if (!info->useEXA) {
+-		(*info->accel->SubsequentScreenToScreenCopy)(pScrn, xa, ya,
+-							     xa + info->backX,
+-							     ya + info->backY,
+-							     xb - xa + 1,
+-							     yb - ya + 1);
++		(*info->accel_state->accel->SubsequentScreenToScreenCopy)(pScrn, xa, ya,
++									  xa + info->dri->backX,
++									  ya + info->dri->backY,
++									  xb - xa + 1,
++									  yb - ya + 1);
+ 	    }
+ #endif
+ 	}
+     }
+ 
+ #ifdef USE_XAA
+-    info->dst_pitch_offset &= ~RADEON_DST_TILE_MACRO;
++    info->accel_state->dst_pitch_offset &= ~RADEON_DST_TILE_MACRO;
+ #endif
+ 
+ out:
+     REGION_NULL(pScreen, &region);
+-    DamageEmpty(info->pDamage);
++    DamageEmpty(info->dri->pDamage);
+ }
+ 
+ #endif /* DAMAGE */
+@@ -1981,13 +1991,13 @@ static void RADEONEnablePageFlip(ScreenPtr pScreen)
+     ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr       info       = RADEONPTR(pScrn);
+ 
+-    if (info->allowPageFlip) {
+-	RADEONSAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen);
++    if (info->dri->allowPageFlip) {
++	drm_radeon_sarea_t *pSAREAPriv = DRIGetSAREAPrivate(pScreen);
+ 	BoxRec box = { .x1 = 0, .y1 = 0, .x2 = pScrn->virtualX - 1,
+ 		       .y2 = pScrn->virtualY - 1 };
+ 	RegionPtr pReg = REGION_CREATE(pScreen, &box, 1);
+ 
+-	pSAREAPriv->pfAllowPageFlip = 1;
++	pSAREAPriv->pfState = 1;
+ 	RADEONDRIRefreshArea(pScrn, pReg);
+ 	REGION_DESTROY(pScreen, pReg);
+     }
+@@ -2000,9 +2010,9 @@ static void RADEONDisablePageFlip(ScreenPtr pScreen)
+      *   -- Field in sarea, plus bumping the window counters.
+      *   -- DRM needs to cope with Front-to-Back swapbuffers.
+      */
+-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen);
++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen);
+ 
+-    pSAREAPriv->pfAllowPageFlip = 0;
++    pSAREAPriv->pfState = 0;
+ }
+ 
+ static void RADEONDRITransitionSingleToMulti3d(ScreenPtr pScreen)
+@@ -2034,9 +2044,9 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
+ 	 * first so we always start with all free offscreen memory, except
+ 	 * maybe for Xv
+ 	 */
+-	if (info->backArea) {
+-	    xf86FreeOffscreenArea(info->backArea);
+-	    info->backArea = NULL;
++	if (info->dri->backArea) {
++	    xf86FreeOffscreenArea(info->dri->backArea);
++	    info->dri->backArea = NULL;
+         }
+ 
+ 	xf86PurgeUnlockedOffscreenAreas(pScreen);
+@@ -2047,7 +2057,7 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
+ 	 * FIXME: This is hideous.  What about telling xv "oh btw you have no memory
+ 	 * any more?" -- anholt
+ 	 */
+-	if (height < (info->depthTexLines + info->backLines)) {
++	if (height < (info->dri->depthTexLines + info->dri->backLines)) {
+ 	    RADEONPortPrivPtr portPriv = info->adaptor->pPortPrivates[0].ptr;
+ 	    xf86FreeOffscreenLinear((FBLinearPtr)portPriv->video_memory);
+ 	    portPriv->video_memory = NULL;
+@@ -2061,29 +2071,29 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
+ 	 */
+ 	fbarea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+ 					   height
+-					   - info->depthTexLines
+-					   - info->backLines,
++					   - info->dri->depthTexLines
++					   - info->dri->backLines,
+ 					   pScrn->displayWidth,
+ 					   NULL, NULL, NULL);
+ 	if (!fbarea)
+ 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve placeholder "
+ 		       "offscreen area, you might experience screen corruption\n");
+ 
+-	info->backArea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+-						   info->backLines,
+-						   pScrn->displayWidth,
+-						   NULL, NULL, NULL);
+-	if (!info->backArea)
++	info->dri->backArea = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
++							info->dri->backLines,
++							pScrn->displayWidth,
++							NULL, NULL, NULL);
++	if (!info->dri->backArea)
+ 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen "
+ 		       "area for back buffer, you might experience screen "
+ 		       "corruption\n");
+ 
+-	info->depthTexArea = xf86AllocateOffscreenArea(pScreen,
+-						       pScrn->displayWidth,
+-						       info->depthTexLines,
+-						       pScrn->displayWidth,
+-						       NULL, NULL, NULL);
+-	if (!info->depthTexArea)
++	info->dri->depthTexArea = xf86AllocateOffscreenArea(pScreen,
++							    pScrn->displayWidth,
++							    info->dri->depthTexLines,
++							    pScrn->displayWidth,
++							    NULL, NULL, NULL);
++	if (!info->dri->depthTexArea)
+ 	    xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen "
+ 		       "area for depth buffer and textures, you might "
+ 		       "experience screen corruption\n");
+@@ -2092,7 +2102,7 @@ static void RADEONDRITransitionTo3d(ScreenPtr pScreen)
+     }
+ #endif /* USE_XAA */
+ 
+-    info->have3DWindows = 1;
++    info->dri->have3DWindows = 1;
+ 
+     RADEONChangeSurfaces(pScrn);
+     RADEONEnablePageFlip(pScreen);
+@@ -2108,19 +2118,19 @@ static void RADEONDRITransitionTo2d(ScreenPtr pScreen)
+ {
+     ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr       info       = RADEONPTR(pScrn);
+-    RADEONSAREAPrivPtr  pSAREAPriv = DRIGetSAREAPrivate(pScreen);
++    drm_radeon_sarea_t  *pSAREAPriv = DRIGetSAREAPrivate(pScreen);
+ 
+     /* Try flipping back to the front page if necessary */
+     if (pSAREAPriv->pfCurrentPage == 1)
+-	drmCommandNone(info->drmFD, DRM_RADEON_FLIP);
++	drmCommandNone(info->dri->drmFD, DRM_RADEON_FLIP);
+ 
+     /* Shut down shadowing if we've made it back to the front page */
+     if (pSAREAPriv->pfCurrentPage == 0) {
+ 	RADEONDisablePageFlip(pScreen);
+ #ifdef USE_XAA
+ 	if (!info->useEXA) {
+-	    xf86FreeOffscreenArea(info->backArea);
+-	    info->backArea = NULL;
++	    xf86FreeOffscreenArea(info->dri->backArea);
++	    info->dri->backArea = NULL;
+ 	}
+ #endif
+     } else {
+@@ -2131,10 +2141,10 @@ static void RADEONDRITransitionTo2d(ScreenPtr pScreen)
+ 
+ #ifdef USE_XAA
+     if (!info->useEXA)
+-	xf86FreeOffscreenArea(info->depthTexArea);
++	xf86FreeOffscreenArea(info->dri->depthTexArea);
+ #endif
+ 
+-    info->have3DWindows = 0;
++    info->dri->have3DWindows = 0;
+ 
+     RADEONChangeSurfaces(pScrn);
+ 
+@@ -2154,8 +2164,8 @@ RADEONDRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num)
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+     RADEONInfoPtr info = RADEONPTR(pScrn);
+ 
+-    REGION_UNINIT(pScreen, &info->driRegion);
+-    REGION_NULL(pScreen, &info->driRegion);
++    REGION_UNINIT(pScreen, &info->dri->driRegion);
++    REGION_NULL(pScreen, &info->dri->driRegion);
+ 
+     if (num > 0) {
+ 	int i;
+@@ -2164,8 +2174,8 @@ RADEONDRIClipNotify(ScreenPtr pScreen, WindowPtr *ppWin, int num)
+ 	    WindowPtr pWin = ppWin[i];
+ 
+ 	    if (pWin) {
+-		REGION_UNION(pScreen, &info->driRegion, &pWin->clipList,
+-			     &info->driRegion);
++		REGION_UNION(pScreen, &info->dri->driRegion, &pWin->clipList,
++			     &info->dri->driRegion);
+ 	    }
+ 	}
+     }
+@@ -2178,24 +2188,24 @@ void RADEONDRIAllocatePCIGARTTable(ScreenPtr pScreen)
+     RADEONInfoPtr      info    = RADEONPTR(pScrn);
+ 
+     if (info->cardType != CARD_PCIE ||
+-	info->pKernelDRMVersion->version_minor < 19)
++	info->dri->pKernelDRMVersion->version_minor < 19)
+       return;
+ 
+     if (info->FbSecureSize==0)
+       return;
+ 
+     /* set the old default size of pci gart table */
+-    if (info->pKernelDRMVersion->version_minor < 26)
+-      info->pciGartSize = 32768;
++    if (info->dri->pKernelDRMVersion->version_minor < 26)
++      info->dri->pciGartSize = 32768;
+ 
+-    info->pciGartSize = RADEONDRIGetPciAperTableSize(pScrn);
++    info->dri->pciGartSize = RADEONDRIGetPciAperTableSize(pScrn);
+ 
+     /* allocate space to back up PCIEGART table */
+-    info->pciGartBackup = xnfcalloc(1, info->pciGartSize);
+-    if (info->pciGartBackup == NULL)
++    info->dri->pciGartBackup = xnfcalloc(1, info->dri->pciGartSize);
++    if (info->dri->pciGartBackup == NULL)
+       return;
+ 
+-    info->pciGartOffset = (info->FbMapSize - info->FbSecureSize);
++    info->dri->pciGartOffset = (info->FbMapSize - info->FbSecureSize);
+ 
+ 
+ }
+@@ -2207,7 +2217,7 @@ int RADEONDRIGetPciAperTableSize(ScrnInfoPtr pScrn)
+     int ret_size;
+     int num_pages;
+ 
+-    num_pages = (info->pciAperSize * 1024 * 1024) / page_size;
++    num_pages = (info->dri->pciAperSize * 1024 * 1024) / page_size;
+     
+     ret_size = num_pages * sizeof(unsigned int);
+ 
+@@ -2216,14 +2226,14 @@ int RADEONDRIGetPciAperTableSize(ScrnInfoPtr pScrn)
+ 
+ int RADEONDRISetParam(ScrnInfoPtr pScrn, unsigned int param, int64_t value)
+ {
+-    drmRadeonSetParam  radeonsetparam;
++    drm_radeon_setparam_t  radeonsetparam;
+     RADEONInfoPtr  info   = RADEONPTR(pScrn);
+     int ret;
+ 
+-    memset(&radeonsetparam, 0, sizeof(drmRadeonSetParam));
++    memset(&radeonsetparam, 0, sizeof(drm_radeon_setparam_t));
+     radeonsetparam.param = param;
+     radeonsetparam.value = value;
+-    ret = drmCommandWrite(info->drmFD, DRM_RADEON_SETPARAM,
+-			  &radeonsetparam, sizeof(drmRadeonSetParam));
++    ret = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SETPARAM,
++			  &radeonsetparam, sizeof(drm_radeon_setparam_t));
+     return ret;
+ }
+diff --git a/src/radeon_dri.h b/src/radeon_dri.h
+index 67892a6..6e3ad62 100644
+--- a/src/radeon_dri.h
++++ b/src/radeon_dri.h
+@@ -39,9 +39,8 @@
+ #include "xf86drm.h"
+ 
+ /* DRI Driver defaults */
+-#define RADEON_DEFAULT_CP_PIO_MODE    RADEON_CSQ_PRIPIO_INDPIO
+-#define RADEON_DEFAULT_CP_BM_MODE     RADEON_CSQ_PRIBM_INDBM
+ #define RADEON_DEFAULT_GART_SIZE      8 /* MB (must be 2^n and > 4MB) */
++#define R300_DEFAULT_GART_SIZE        32 /* MB (for R300 and above) */
+ #define RADEON_DEFAULT_RING_SIZE      1 /* MB (must be page aligned) */
+ #define RADEON_DEFAULT_BUFFER_SIZE    2 /* MB (must be page aligned) */
+ #define RADEON_DEFAULT_GART_TEX_SIZE  1 /* MB (must be page aligned) */
+@@ -52,10 +51,6 @@
+ 
+ #define RADEON_CARD_TYPE_RADEON       1
+ 
+-#define RADEONCP_USE_RING_BUFFER(m)					\
+-    (((m) == RADEON_CSQ_PRIBM_INDDIS) ||				\
+-     ((m) == RADEON_CSQ_PRIBM_INDBM))
+-
+ typedef struct {
+     /* DRI screen private data */
+     int           deviceID;	/* PCI device ID */
+diff --git a/src/radeon_dripriv.h b/src/radeon_dripriv.h
+deleted file mode 100644
+index fcde08e..0000000
+--- a/src/radeon_dripriv.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-/*
+- * Copyright 2000 ATI Technologies Inc., Markham, Ontario,
+- *                VA Linux Systems Inc., Fremont, California.
+- *
+- * All Rights Reserved.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining
+- * a copy of this software and associated documentation files (the
+- * "Software"), to deal in the Software without restriction, including
+- * without limitation on the rights to use, copy, modify, merge,
+- * publish, distribute, sublicense, and/or sell copies of the Software,
+- * and to permit persons to whom the Software is furnished to do so,
+- * subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice (including the
+- * next paragraph) shall be included in all copies or substantial
+- * portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
+- * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+- * DEALINGS IN THE SOFTWARE.
+- */
+-
+-/*
+- * Authors:
+- *   Kevin E. Martin <martin@xfree86.org>
+- *   Rickard E. Faith <faith@valinux.com>
+- *
+- */
+-
+-#ifndef _RADEON_DRIPRIV_H_
+-#define _RADEON_DRIPRIV_H_
+-
+-#include "GL/glxint.h"
+-#include "xf86drm.h"
+-#include "radeon_common.h"
+-
+-#define RADEON_MAX_DRAWABLES 256
+-
+-extern void GlxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
+-				void **configprivs);
+-
+-typedef struct {
+-    /* Nothing here yet */
+-    int dummy;
+-} RADEONConfigPrivRec, *RADEONConfigPrivPtr;
+-
+-typedef struct {
+-#ifdef PER_CONTEXT_SAREA
+-    drm_context_t ctx_id;
+-    drm_handle_t sarea_handle;
+-#else
+-    /* Nothing here yet */
+-    int dummy;
+-#endif
+-} RADEONDRIContextRec, *RADEONDRIContextPtr;
+-
+-#endif
+diff --git a/src/radeon_driver.c b/src/radeon_driver.c
+index f18ad99..c759bd6 100644
+--- a/src/radeon_driver.c
++++ b/src/radeon_driver.c
+@@ -79,7 +79,7 @@
+ #ifdef XF86DRI
+ #define _XF86DRI_SERVER_
+ #include "radeon_dri.h"
+-#include "radeon_sarea.h"
++#include "radeon_drm.h"
+ #include "sarea.h"
+ #endif
+ 
+@@ -498,7 +498,7 @@ static Bool RADEONUnmapMem(ScrnInfoPtr pScrn)
+ void RADEONPllErrataAfterIndex(RADEONInfoPtr info)
+ {
+     unsigned char *RADEONMMIO = info->MMIO;
+-	
++
+     if (!(info->ChipErrata & CHIP_ERRATA_PLL_DUMMYREADS))
+ 	return;
+ 
+@@ -669,7 +669,14 @@ static void radeon_write_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, uint32_
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+     unsigned char *RADEONMMIO = info->MMIO;
+ 
+-    if (info->ChipFamily >= CHIP_FAMILY_R600) {
++    if (info->ChipFamily >= CHIP_FAMILY_RV770) {
++	if (mask & LOC_FB)
++	    OUTREG(R700_MC_VM_FB_LOCATION, fb_loc);
++	if (mask & LOC_AGP) {
++	    OUTREG(R600_MC_VM_AGP_BOT, agp_loc);
++	    OUTREG(R600_MC_VM_AGP_TOP, agp_loc_hi);
++	}
++    } else if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ 	if (mask & LOC_FB)
+ 	    OUTREG(R600_MC_VM_FB_LOCATION, fb_loc);
+ 	if (mask & LOC_AGP) {
+@@ -712,7 +719,14 @@ static void radeon_read_mc_fb_agp_location(ScrnInfoPtr pScrn, int mask, uint32_t
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+     unsigned char *RADEONMMIO = info->MMIO;
+ 
+-    if (info->ChipFamily >= CHIP_FAMILY_R600) {
++    if (info->ChipFamily >= CHIP_FAMILY_RV770) {
++	if (mask & LOC_FB)
++	    *fb_loc = INREG(R700_MC_VM_FB_LOCATION);
++	if (mask & LOC_AGP) {
++	    *agp_loc = INREG(R600_MC_VM_AGP_BOT);
++	    *agp_loc_hi = INREG(R600_MC_VM_AGP_TOP);
++	}
++    } else if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ 	if (mask & LOC_FB)
+ 	    *fb_loc = INREG(R600_MC_VM_FB_LOCATION);
+ 	if (mask & LOC_AGP) {
+@@ -1160,7 +1174,6 @@ static Bool RADEONPreInitVisual(ScrnInfoPtr pScrn)
+ 
+     xf86PrintDepthBpp(pScrn);
+ 
+-    info->fifo_slots                 = 0;
+     info->pix24bpp                   = xf86GetBppFromDepth(pScrn,
+ 							   pScrn->depth);
+     info->CurrentLayout.bitsPerPixel = pScrn->bitsPerPixel;
+@@ -1271,7 +1284,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
+ 
+ #ifdef XF86DRI
+     /* Apply memory map limitation if using an old DRI */
+-    if (info->directRenderingEnabled && !info->newMemoryMap) {
++    if (info->directRenderingEnabled && !info->dri->newMemoryMap) {
+ 	    if (aper_size < mem_size)
+ 		mem_size = aper_size;
+     }
+@@ -1286,7 +1299,7 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
+ #ifdef XF86DRI
+ 	/* Old DRI has restrictions on the memory map */
+ 	if ( info->directRenderingEnabled &&
+-	     info->pKernelDRMVersion->version_minor < 10 )
++	     info->dri->pKernelDRMVersion->version_minor < 10 )
+ 	    info->mc_fb_location = (mem_size - 1) & 0xffff0000U;
+ 	else
+ #endif
+@@ -1474,18 +1487,18 @@ static uint32_t RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn)
+      * we need to limit the amount of accessible video memory
+      */
+     if (info->directRenderingEnabled &&
+-	info->pKernelDRMVersion->version_minor < 23) {
++	info->dri->pKernelDRMVersion->version_minor < 23) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		   "[dri] limiting video memory to one aperture of %uK\n",
+ 		   (unsigned)aper_size);
+ 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		   "[dri] detected radeon kernel module version 1.%d but"
+ 		   " 1.23 or newer is required for full memory mapping.\n",
+-		   info->pKernelDRMVersion->version_minor);
+-	info->newMemoryMap = FALSE;
++		   info->dri->pKernelDRMVersion->version_minor);
++	info->dri->newMemoryMap = FALSE;
+ 	return aper_size;
+     }
+-    info->newMemoryMap = TRUE;
++    info->dri->newMemoryMap = TRUE;
+ #endif /* XF86DRI */
+ 
+     /* Set HDP_APER_CNTL only on cards that are known not to be broken,
+@@ -1893,20 +1906,6 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
+             return FALSE;
+     }
+ 
+-
+-    if ((info->ChipFamily == CHIP_FAMILY_RS100) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS200) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS300) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS400) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS480) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS600) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS690) ||
+-	(info->ChipFamily == CHIP_FAMILY_RS740))
+-	info->has_tcl = FALSE;
+-    else {
+-	info->has_tcl = TRUE;
+-    }
+-
+     return TRUE;
+ }
+ 
+@@ -1960,6 +1959,25 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn)
+     char *optstr;
+ #endif
+ 
++    if (!(info->accel_state = xcalloc(1, sizeof(struct radeon_accel_state)))) {
++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to allocate accel_state rec!\n");
++	return FALSE;
++    }
++    info->accel_state->fifo_slots                 = 0;
++
++    if ((info->ChipFamily == CHIP_FAMILY_RS100) ||
++	(info->ChipFamily == CHIP_FAMILY_RS200) ||
++	(info->ChipFamily == CHIP_FAMILY_RS300) ||
++	(info->ChipFamily == CHIP_FAMILY_RS400) ||
++	(info->ChipFamily == CHIP_FAMILY_RS480) ||
++	(info->ChipFamily == CHIP_FAMILY_RS600) ||
++	(info->ChipFamily == CHIP_FAMILY_RS690) ||
++	(info->ChipFamily == CHIP_FAMILY_RS740))
++	info->accel_state->has_tcl = FALSE;
++    else {
++	info->accel_state->has_tcl = TRUE;
++    }
++
+     info->useEXA = FALSE;
+ 
+     if (info->ChipFamily >= CHIP_FAMILY_R600) {
+@@ -2032,16 +2050,22 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn)
+ 
+ static Bool RADEONPreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10)
+ {
+-#if !defined(__powerpc__) && !defined(__sparc__)
++#if (!defined(__powerpc__) && !defined(__sparc__)) || \
++    (defined(XSERVER_LIBPCIACCESS) && HAVE_PCI_DEVICE_ENABLE)
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
++#endif
++#if !defined(__powerpc__) && !defined(__sparc__)
+     unsigned char *RADEONMMIO = info->MMIO;
+     uint32_t       fp2_gen_ctl_save   = 0;
++#endif
+ 
+ #ifdef XSERVER_LIBPCIACCESS
+ #if HAVE_PCI_DEVICE_ENABLE
+     pci_device_enable(info->PciInfo);
+ #endif
+ #endif
++
++#if !defined(__powerpc__) && !defined(__sparc__)
+     /* don't need int10 on atom cards.
+      * in theory all radeons, but the older stuff
+      * isn't 100% yet
+@@ -2087,10 +2111,19 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 
+     info->directRenderingEnabled = FALSE;
+     info->directRenderingInited = FALSE;
+-    info->CPInUse = FALSE;
+-    info->CPStarted = FALSE;
+-    info->pLibDRMVersion = NULL;
+-    info->pKernelDRMVersion = NULL;
++
++    if (!(info->dri = xcalloc(1, sizeof(struct radeon_dri)))) {
++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"Unable to allocate dri rec!\n");
++	return FALSE;
++    }
++
++    if (!(info->cp = xcalloc(1, sizeof(struct radeon_cp)))) {
++	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"Unable to allocate cp rec!\n");
++	return FALSE;
++    }
++    info->cp->CPInUse = FALSE;
++    info->cp->CPStarted = FALSE;
++    info->cp->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT;
+ 
+    if (xf86IsEntityShared(info->pEnt->index)) {
+         xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+@@ -2106,19 +2139,16 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 
+     if (info->Chipset == PCI_CHIP_RN50_515E ||
+ 	info->Chipset == PCI_CHIP_RN50_5969 ||
+-	info->Chipset == PCI_CHIP_RC410_5A61 ||
+-	info->Chipset == PCI_CHIP_RC410_5A62 ||
+-	info->Chipset == PCI_CHIP_RS485_5975 ||
+ 	info->ChipFamily == CHIP_FAMILY_RS600 ||
+ 	info->ChipFamily >= CHIP_FAMILY_R600) {
+ 	if (xf86ReturnOptValBool(info->Options, OPTION_DRI, FALSE)) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+-		"Direct rendering for RN50/RC410/RS485/RS600/R600 forced on -- "
++		"Direct rendering for RN50/RS600/R600 forced on -- "
+ 		"This is NOT officially supported at the hardware level "
+ 		"and may cause instability or lockups\n");
+ 	} else {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-		"Direct rendering not officially supported on RN50/RC410/R600\n");
++		"Direct rendering not officially supported on RN50/RS600/R600\n");
+ 	    return FALSE;
+ 	}
+     }
+@@ -2136,18 +2166,26 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 	return FALSE;
+     }
+ 
++    if (!(info->dri = xcalloc(1, sizeof(struct radeon_dri)))) {
++	ErrorF("Unable to allocate dri rec!\n");
++	return FALSE;
++    }
++
++    info->dri->pLibDRMVersion = NULL;
++    info->dri->pKernelDRMVersion = NULL;
++
+     if (!RADEONDRIGetVersion(pScrn))
+ 	return FALSE;
+ 
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 	       "[dri] Found DRI library version %d.%d.%d and kernel"
+ 	       " module version %d.%d.%d\n",
+-	       info->pLibDRMVersion->version_major,
+-	       info->pLibDRMVersion->version_minor,
+-	       info->pLibDRMVersion->version_patchlevel,
+-	       info->pKernelDRMVersion->version_major,
+-	       info->pKernelDRMVersion->version_minor,
+-	       info->pKernelDRMVersion->version_patchlevel);
++	       info->dri->pLibDRMVersion->version_major,
++	       info->dri->pLibDRMVersion->version_minor,
++	       info->dri->pLibDRMVersion->version_patchlevel,
++	       info->dri->pKernelDRMVersion->version_major,
++	       info->dri->pKernelDRMVersion->version_minor,
++	       info->dri->pKernelDRMVersion->version_patchlevel);
+ 
+     if (info->Chipset == PCI_CHIP_RS400_5A41 ||
+ 	info->Chipset == PCI_CHIP_RS400_5A42 ||
+@@ -2158,7 +2196,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 	info->Chipset == PCI_CHIP_RS482_5974 ||
+ 	info->Chipset == PCI_CHIP_RS485_5975) {
+ 
+-	if (info->pKernelDRMVersion->version_minor < 27) {
++	if (info->dri->pKernelDRMVersion->version_minor < 27) {
+  	     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 			"Direct rendering broken on XPRESS 200 and 200M with DRI less than 1.27\n");
+ 	     return FALSE;
+@@ -2167,25 +2205,22 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 	"Direct rendering experimental on RS400/Xpress 200 enabled\n");
+     }
+ 
+-    if (xf86ReturnOptValBool(info->Options, OPTION_CP_PIO, FALSE)) {
+-	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forcing CP into PIO mode\n");
+-	info->CPMode = RADEON_DEFAULT_CP_PIO_MODE;
+-    } else {
+-	info->CPMode = RADEON_DEFAULT_CP_BM_MODE;
+-    }
++    if (info->ChipFamily >= CHIP_FAMILY_R300)
++	info->dri->gartSize      = R300_DEFAULT_GART_SIZE;
++    else
++	info->dri->gartSize      = RADEON_DEFAULT_GART_SIZE;
+ 
+-    info->gartSize      = RADEON_DEFAULT_GART_SIZE;
+-    info->ringSize      = RADEON_DEFAULT_RING_SIZE;
+-    info->bufSize       = RADEON_DEFAULT_BUFFER_SIZE;
+-    info->gartTexSize   = RADEON_DEFAULT_GART_TEX_SIZE;
+-    info->pciAperSize   = RADEON_DEFAULT_PCI_APER_SIZE;
+-    info->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT;
++    info->dri->ringSize      = RADEON_DEFAULT_RING_SIZE;
++    info->dri->bufSize       = RADEON_DEFAULT_BUFFER_SIZE;
++    info->dri->gartTexSize   = RADEON_DEFAULT_GART_TEX_SIZE;
++    info->dri->pciAperSize   = RADEON_DEFAULT_PCI_APER_SIZE;
++    info->cp->CPusecTimeout = RADEON_DEFAULT_CP_TIMEOUT;
+ 
+     if ((xf86GetOptValInteger(info->Options,
+-			     OPTION_GART_SIZE, (int *)&(info->gartSize))) ||
++			     OPTION_GART_SIZE, (int *)&(info->dri->gartSize))) ||
+ 			     (xf86GetOptValInteger(info->Options,
+-			     OPTION_GART_SIZE_OLD, (int *)&(info->gartSize)))) {
+-	switch (info->gartSize) {
++			     OPTION_GART_SIZE_OLD, (int *)&(info->dri->gartSize)))) {
++	switch (info->dri->gartSize) {
+ 	case 4:
+ 	case 8:
+ 	case 16:
+@@ -2197,24 +2232,24 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ 
+ 	default:
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+-		       "Illegal GART size: %d MB\n", info->gartSize);
++		       "Illegal GART size: %d MB\n", info->dri->gartSize);
+ 	    return FALSE;
+ 	}
+     }
+ 
+     if (xf86GetOptValInteger(info->Options,
+-			     OPTION_RING_SIZE, &(info->ringSize))) {
+-	if (info->ringSize < 1 || info->ringSize >= (int)info->gartSize) {
++			     OPTION_RING_SIZE, &(info->dri->ringSize))) {
++	if (info->dri->ringSize < 1 || info->dri->ringSize >= (int)info->dri->gartSize) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Illegal ring buffer size: %d MB\n",
+-		       info->ringSize);
++		       info->dri->ringSize);
+ 	    return FALSE;
+ 	}
+     }
+ 
+     if (xf86GetOptValInteger(info->Options,
+-			     OPTION_PCIAPER_SIZE, &(info->pciAperSize))) {
+-      switch(info->pciAperSize) {
++			     OPTION_PCIAPER_SIZE, &(info->dri->pciAperSize))) {
++      switch(info->dri->pciAperSize) {
+       case 32:
+       case 64:
+       case 128:
+@@ -2223,63 +2258,63 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+       default:
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Illegal pci aper size: %d MB\n",
+-		       info->pciAperSize);
++		       info->dri->pciAperSize);
+ 	return FALSE;
+       }
+     }
+ 
+ 
+     if (xf86GetOptValInteger(info->Options,
+-			     OPTION_BUFFER_SIZE, &(info->bufSize))) {
+-	if (info->bufSize < 1 || info->bufSize >= (int)info->gartSize) {
++			     OPTION_BUFFER_SIZE, &(info->dri->bufSize))) {
++	if (info->dri->bufSize < 1 || info->dri->bufSize >= (int)info->dri->gartSize) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Illegal vertex/indirect buffers size: %d MB\n",
+-		       info->bufSize);
++		       info->dri->bufSize);
+ 	    return FALSE;
+ 	}
+-	if (info->bufSize > 2) {
++	if (info->dri->bufSize > 2) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Illegal vertex/indirect buffers size: %d MB\n",
+-		       info->bufSize);
++		       info->dri->bufSize);
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Clamping vertex/indirect buffers size to 2 MB\n");
+-	    info->bufSize = 2;
++	    info->dri->bufSize = 2;
+ 	}
+     }
+ 
+-    if (info->ringSize + info->bufSize + info->gartTexSize >
+-	(int)info->gartSize) {
++    if (info->dri->ringSize + info->dri->bufSize + info->dri->gartTexSize >
++	(int)info->dri->gartSize) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "Buffers are too big for requested GART space\n");
+ 	return FALSE;
+     }
+ 
+-    info->gartTexSize = info->gartSize - (info->ringSize + info->bufSize);
++    info->dri->gartTexSize = info->dri->gartSize - (info->dri->ringSize + info->dri->bufSize);
+ 
+     if (xf86GetOptValInteger(info->Options, OPTION_USEC_TIMEOUT,
+-			     &(info->CPusecTimeout))) {
++			     &(info->cp->CPusecTimeout))) {
+ 	/* This option checked by the RADEON DRM kernel module */
+     }
+ 
+     /* Two options to try and squeeze as much texture memory as possible
+      * for dedicated 3d rendering boxes
+      */
+-    info->noBackBuffer = xf86ReturnOptValBool(info->Options,
+-					      OPTION_NO_BACKBUFFER,
+-					      FALSE);
++    info->dri->noBackBuffer = xf86ReturnOptValBool(info->Options,
++						   OPTION_NO_BACKBUFFER,
++						   FALSE);
+ 
+-    info->allowPageFlip = 0;
++    info->dri->allowPageFlip = 0;
+ 
+ #ifdef DAMAGE
+-    if (info->noBackBuffer) {
++    if (info->dri->noBackBuffer) {
+ 	from = X_DEFAULT;
+ 	reason = " because back buffer disabled";
+     } else {
+ 	from = xf86GetOptValBool(info->Options, OPTION_PAGE_FLIP,
+-				 &info->allowPageFlip) ? X_CONFIG : X_DEFAULT;
++				 &info->dri->allowPageFlip) ? X_CONFIG : X_DEFAULT;
+ 
+ 	if (IS_AVIVO_VARIANT) {
+-	    info->allowPageFlip = 0;
++	    info->dri->allowPageFlip = 0;
+ 	    reason = " on r5xx and newer chips.\n";
+ 	} else {
+ 	    reason = "";
+@@ -2292,7 +2327,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
+ #endif
+ 
+     xf86DrvMsg(pScrn->scrnIndex, from, "Page Flipping %sabled%s\n",
+-	       info->allowPageFlip ? "en" : "dis", reason);
++	       info->dri->allowPageFlip ? "en" : "dis", reason);
+ 
+     info->DMAForXv = TRUE;
+     from = xf86GetOptValBool(info->Options, OPTION_XV_DMA, &info->DMAForXv)
+@@ -2332,15 +2367,15 @@ static void RADEONPreInitColorTiling(ScrnInfoPtr pScrn)
+ 
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled &&
+-	info->pKernelDRMVersion->version_minor < 14) {
++	info->dri->pKernelDRMVersion->version_minor < 14) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 		   "[dri] color tiling disabled because of version "
+ 		   "mismatch.\n"
+ 		   "[dri] radeon.o kernel module version is %d.%d.%d but "
+ 		   "1.14.0 or later is required for color tiling.\n",
+-		   info->pKernelDRMVersion->version_major,
+-		   info->pKernelDRMVersion->version_minor,
+-		   info->pKernelDRMVersion->version_patchlevel);
++		   info->dri->pKernelDRMVersion->version_major,
++		   info->dri->pKernelDRMVersion->version_minor,
++		   info->dri->pKernelDRMVersion->version_patchlevel);
+ 	   info->allowColorTiling = FALSE;
+ 	   return;
+     }
+@@ -2994,7 +3029,7 @@ static void RADEONLoadPalette(ScrnInfoPtr pScrn, int numColors,
+     int c;
+ 
+ #ifdef XF86DRI
+-    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
++    if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
+ #endif
+ 
+     if (info->accelOn && pScrn->pScreen)
+@@ -3058,7 +3093,7 @@ static void RADEONLoadPalette(ScrnInfoPtr pScrn, int numColors,
+     }
+ 
+ #ifdef XF86DRI
+-    if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
++    if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
+ #endif
+ }
+ 
+@@ -3077,12 +3112,12 @@ static void RADEONBlockHandler(int i, pointer blockData,
+ 	(*info->VideoTimerCallback)(pScrn, currentTime.milliseconds);
+ 
+ #if defined(RENDER) && defined(USE_XAA)
+-    if(info->RenderCallback)
+-	(*info->RenderCallback)(pScrn);
++    if(info->accel_state->RenderCallback)
++	(*info->accel_state->RenderCallback)(pScrn);
+ #endif
+ 
+ #ifdef USE_EXA
+-    info->engineMode = EXA_ENGINEMODE_UNKNOWN;
++    info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
+ #endif
+ }
+ 
+@@ -3175,17 +3210,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 
+     info->accelOn      = FALSE;
+ #ifdef USE_XAA
+-    info->accel        = NULL;
++    info->accel_state->accel        = NULL;
+ #endif
+ #ifdef XF86DRI
+-    pScrn->fbOffset    = info->frontOffset;
++    pScrn->fbOffset    = info->dri->frontOffset;
+ #endif
+ 
+     if (info->IsSecondary) pScrn->fbOffset = pScrn->videoRam * 1024;
+ #ifdef XF86DRI
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO, 
+ 		   "RADEONScreenInit %lx %ld %d\n",
+-		   pScrn->memPhysBase, pScrn->fbOffset, info->frontOffset);
++		   pScrn->memPhysBase, pScrn->fbOffset, info->dri->frontOffset);
+ #else
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		   "RADEONScreenInit %lx %ld\n",
+@@ -3194,8 +3229,8 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+     if (!RADEONMapMem(pScrn)) return FALSE;
+ 
+ #ifdef XF86DRI
+-    info->fbX = 0;
+-    info->fbY = 0;
++    info->dri->fbX = 0;
++    info->dri->fbY = 0;
+ #endif
+ 
+     info->PaletteSavedOnVT = FALSE;
+@@ -3249,21 +3284,21 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+     if (info->directRenderingEnabled) {
+ 	MessageType from;
+ 
+-	info->depthBits = pScrn->depth;
++	info->dri->depthBits = pScrn->depth;
+ 
+ 	from = xf86GetOptValInteger(info->Options, OPTION_DEPTH_BITS,
+-				    &info->depthBits)
++				    &info->dri->depthBits)
+ 	     ? X_CONFIG : X_DEFAULT;
+ 
+-	if (info->depthBits != 16 && info->depthBits != 24) {
++	if (info->dri->depthBits != 16 && info->dri->depthBits != 24) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Value for Option \"DepthBits\" must be 16 or 24\n");
+-	    info->depthBits = pScrn->depth;
++	    info->dri->depthBits = pScrn->depth;
+ 	    from = X_DEFAULT;
+ 	}
+ 
+ 	xf86DrvMsg(pScrn->scrnIndex, from,
+-		   "Using %d bit depth buffer\n", info->depthBits);
++		   "Using %d bit depth buffer\n", info->dri->depthBits);
+     }
+ 
+ 
+@@ -3276,7 +3311,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+     RADEONInitMemoryMap(pScrn);
+ 
+     /* empty the surfaces */
+-    {
++    if (info->ChipFamily < CHIP_FAMILY_R600) {
+ 	unsigned char *RADEONMMIO = info->MMIO;
+ 	unsigned int j;
+ 	for (j = 0; j < 8; j++) {
+@@ -3288,14 +3323,14 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 
+ #ifdef XF86DRI
+     /* Depth moves are disabled by default since they are extremely slow */
+-    info->depthMoves = xf86ReturnOptValBool(info->Options,
++    info->dri->depthMoves = xf86ReturnOptValBool(info->Options,
+ 						 OPTION_DEPTH_MOVE, FALSE);
+-    if (info->depthMoves && info->allowColorTiling) {
++    if (info->dri->depthMoves && info->allowColorTiling) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Enabling depth moves\n");
+-    } else if (info->depthMoves) {
++    } else if (info->dri->depthMoves) {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "Depth moves don't work without color tiling, disabled\n");
+-	info->depthMoves = FALSE;
++	info->dri->depthMoves = FALSE;
+     } else {
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		   "Depth moves disabled by default\n");
+@@ -3331,15 +3366,15 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 	     * default, can be overridden with Option "FBTexPercent".
+ 	     * Round down to a whole number of texture regions.
+ 	     */
+-	    info->textureSize = 50;
++	    info->dri->textureSize = 50;
+ 
+ 	    if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
+-				     &(info->textureSize))) {
+-		if (info->textureSize < 0 || info->textureSize > 100) {
++				     &(info->dri->textureSize))) {
++		if (info->dri->textureSize < 0 || info->dri->textureSize > 100) {
+ 		    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			       "Illegal texture memory percentage: %dx, setting to default 50%%\n",
+-			       info->textureSize);
+-		    info->textureSize = 50;
++			       info->dri->textureSize);
++		    info->dri->textureSize = 50;
+ 		}
+ 	    }
+ 	}
+@@ -3356,19 +3391,19 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 
+ #if defined(XF86DRI) && defined(USE_XAA)
+     if (!info->useEXA && hasDRI) {
+-	info->textureSize = -1;
++	info->dri->textureSize = -1;
+ 	if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
+-				 &(info->textureSize))) {
+-	    if (info->textureSize < 0 || info->textureSize > 100) {
++				 &(info->dri->textureSize))) {
++	    if (info->dri->textureSize < 0 || info->dri->textureSize > 100) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			   "Illegal texture memory percentage: %dx, using default behaviour\n",
+-			   info->textureSize);
+-		info->textureSize = -1;
++			   info->dri->textureSize);
++		info->dri->textureSize = -1;
+ 	    }
+ 	}
+ 	if (!RADEONSetupMemXAA_DRI(scrnIndex, pScreen))
+ 	    return FALSE;
+-    	pScrn->fbOffset    = info->frontOffset;
++    	pScrn->fbOffset    = info->dri->frontOffset;
+     }
+ #endif
+ 
+@@ -3377,8 +3412,9 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 	return FALSE;
+ #endif
+ 
+-    info->dst_pitch_offset = (((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64)
+-			       << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10));
++    info->accel_state->dst_pitch_offset =
++	(((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64)
++	  << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10));
+ 
+     /* Setup DRI after visuals have been established, but before fbScreenInit is
+      * called.  fbScreenInit will eventually call the driver's InitGLXVisuals
+@@ -3408,18 +3444,18 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+     }
+ 
+     /* Tell DRI about new memory map */
+-    if (info->directRenderingEnabled && info->newMemoryMap) {
++    if (info->directRenderingEnabled && info->dri->newMemoryMap) {
+         if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_NEW_MEMMAP, 1) < 0) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ 			   "[drm] failed to enable new memory map\n");
+ 		RADEONDRICloseScreen(pScreen);
+-		info->directRenderingEnabled = FALSE;		
++		info->directRenderingEnabled = FALSE;
+ 	}
+     }
+ #endif
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		   "Initializing fb layer\n");
+-    
++
+     if (info->r600_shadow_fb) {
+ 	info->fb_shadow = xcalloc(1,
+ 				  pScrn->displayWidth * pScrn->virtualY *
+@@ -3473,18 +3509,16 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 	else if (strcmp(s, "BGR") == 0) subPixelOrder = SubPixelHorizontalBGR;
+ 	else if (strcmp(s, "NONE") == 0) subPixelOrder = SubPixelNone;
+ 	PictureSetSubpixelOrder (pScreen, subPixelOrder);
+-    } 
++    }
+ #endif
+ 
+     pScrn->vtSema = TRUE;
+ 
+-    /* xf86CrtcRotate() accesses pScrn->pScreen */
+-    pScrn->pScreen = pScreen;
+-
+-    if (!xf86SetDesiredModes (pScrn))
+-	return FALSE;
+-
+-    RADEONSaveScreen(pScreen, SCREEN_SAVER_ON);
++    /* restore the memory map here otherwise we may get a hang when
++     * initializing the drm below
++     */
++    RADEONInitMemMapRegisters(pScrn, info->ModeReg, info);
++    RADEONRestoreMemMapRegisters(pScrn, info->ModeReg);
+ 
+     /* Backing store setup */
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+@@ -3495,14 +3529,14 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+     /* DRI finalisation */
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled && info->cardType==CARD_PCIE &&
+-        info->pKernelDRMVersion->version_minor >= 19)
++        info->dri->pKernelDRMVersion->version_minor >= 19)
+     {
+-      if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->pciGartOffset) < 0)
++      if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->dri->pciGartOffset) < 0)
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		   "[drm] failed set pci gart location\n");
+ 
+-      if (info->pKernelDRMVersion->version_minor >= 26) {
+-	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_TABLE_SIZE, info->pciGartSize) < 0)
++      if (info->dri->pKernelDRMVersion->version_minor >= 26) {
++	if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_TABLE_SIZE, info->dri->pciGartSize) < 0)
+ 	  xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		     "[drm] failed set pci gart table size\n");
+       }
+@@ -3519,10 +3553,6 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 	 */
+ 	RADEONAdjustMemMapRegisters(pScrn, info->ModeReg);
+ 
+-	if ((info->DispPriority == 1) && (info->cardType==CARD_AGP)) {
+-	    /* we need to re-calculate bandwidth because of AGPMode difference. */ 
+-	    RADEONInitDispBandwidth(pScrn);
+-	}
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering enabled\n");
+ 
+ 	/* we might already be in tiled mode, tell drm about it */
+@@ -3620,6 +3650,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+         }
+     }
+ 
++    /* set the modes with desired rotation, etc. */
++    if (!xf86SetDesiredModes (pScrn))
++	return FALSE;
++
+     /* Provide SaveScreen & wrap BlockHandler and CloseScreen */
+     /* Wrap CloseScreen */
+     info->CloseScreen    = pScreen->CloseScreen;
+@@ -3910,7 +3944,7 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
+ 	else
+ 	    info->fbLocation = (info->mc_fb_location & 0xffff) << 16;
+ 
+-	info->dst_pitch_offset =
++	info->accel_state->dst_pitch_offset =
+ 	    (((pScrn->displayWidth * info->CurrentLayout.pixel_bytes / 64)
+ 	      << 22) | ((info->fbLocation + pScrn->fbOffset) >> 10));
+ 	RADEONInitMemMapRegisters(pScrn, save, info);
+@@ -3920,14 +3954,14 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
+ #ifdef USE_EXA
+     if (info->accelDFS)
+     {
+-	drmRadeonGetParam gp;
++	drm_radeon_getparam_t gp;
+ 	int gart_base;
+ 
+ 	memset(&gp, 0, sizeof(gp));
+ 	gp.param = RADEON_PARAM_GART_BASE;
+ 	gp.value = &gart_base;
+ 
+-	if (drmCommandWriteRead(info->drmFD, DRM_RADEON_GETPARAM, &gp,
++	if (drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_GETPARAM, &gp,
+ 				sizeof(gp)) < 0) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "Failed to determine GART area MC location, not using "
+@@ -4011,35 +4045,35 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
+     }   
+ #ifdef XF86DRI
+     if (info->directRenderingInited) {
+-	drmRadeonSurfaceFree drmsurffree;
+-	drmRadeonSurfaceAlloc drmsurfalloc;
++	drm_radeon_surface_free_t drmsurffree;
++	drm_radeon_surface_alloc_t drmsurfalloc;
+ 	int retvalue;
+-	int depthCpp = (info->depthBits - 8) / 4;
++	int depthCpp = (info->dri->depthBits - 8) / 4;
+ 	int depth_width_bytes = pScrn->displayWidth * depthCpp;
+ 	int depthBufferSize = ((((pScrn->virtualY + 15) & ~15) * depth_width_bytes
+ 				+ RADEON_BUFFER_ALIGN) & ~RADEON_BUFFER_ALIGN);
+ 	unsigned int depth_pattern;
+ 
+-	drmsurffree.address = info->frontOffset;
+-	retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE,
++	drmsurffree.address = info->dri->frontOffset;
++	retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE,
+ 	    &drmsurffree, sizeof(drmsurffree));
+ 
+ 	if (!((info->ChipFamily == CHIP_FAMILY_RV100) ||
+ 	    (info->ChipFamily == CHIP_FAMILY_RS100) ||
+ 	    (info->ChipFamily == CHIP_FAMILY_RS200))) {
+-	    drmsurffree.address = info->depthOffset;
+-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE,
++	    drmsurffree.address = info->dri->depthOffset;
++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE,
+ 		&drmsurffree, sizeof(drmsurffree));
+ 	}
+ 
+-	if (!info->noBackBuffer) {
+-	    drmsurffree.address = info->backOffset;
+-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE,
++	if (!info->dri->noBackBuffer) {
++	    drmsurffree.address = info->dri->backOffset;
++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE,
+ 		&drmsurffree, sizeof(drmsurffree));
+ 	}
+ 
+ 	drmsurfalloc.size = bufferSize;
+-	drmsurfalloc.address = info->frontOffset;
++	drmsurfalloc.address = info->dri->frontOffset;
+ 	drmsurfalloc.flags = swap_pattern;
+ 
+ 	if (info->tilingEnabled) {
+@@ -4048,15 +4082,15 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
+ 	    else
+ 		drmsurfalloc.flags |= (width_bytes / 16) | color_pattern;
+ 	}
+-	retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC,
++	retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC,
+ 				   &drmsurfalloc, sizeof(drmsurfalloc));
+ 	if (retvalue < 0)
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 		       "drm: could not allocate surface for front buffer!\n");
+ 	
+-	if ((info->have3DWindows) && (!info->noBackBuffer)) {
+-	    drmsurfalloc.address = info->backOffset;
+-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC,
++	if ((info->dri->have3DWindows) && (!info->dri->noBackBuffer)) {
++	    drmsurfalloc.address = info->dri->backOffset;
++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC,
+ 				       &drmsurfalloc, sizeof(drmsurfalloc));
+ 	    if (retvalue < 0)
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+@@ -4081,18 +4115,18 @@ void RADEONChangeSurfaces(ScrnInfoPtr pScrn)
+ 	}
+ 
+ 	/* rv100 and probably the derivative igps don't have depth tiling on all the time? */
+-	if (info->have3DWindows &&
++	if (info->dri->have3DWindows &&
+ 	    (!((info->ChipFamily == CHIP_FAMILY_RV100) ||
+ 	    (info->ChipFamily == CHIP_FAMILY_RS100) ||
+ 	    (info->ChipFamily == CHIP_FAMILY_RS200)))) {
+-	    drmRadeonSurfaceAlloc drmsurfalloc;
++	    drm_radeon_surface_alloc_t drmsurfalloc;
+ 	    drmsurfalloc.size = depthBufferSize;
+-	    drmsurfalloc.address = info->depthOffset;
++	    drmsurfalloc.address = info->dri->depthOffset;
+             if (IS_R300_VARIANT || IS_AVIVO_VARIANT)
+                 drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 8) | depth_pattern;
+             else
+                 drmsurfalloc.flags = swap_pattern | (depth_width_bytes / 16) | depth_pattern;
+-	    retvalue = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC,
++	    retvalue = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC,
+ 		&drmsurfalloc, sizeof(drmsurfalloc));
+ 	    if (retvalue < 0)
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+@@ -4178,6 +4212,7 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save)
+ 
+     state->crtc_master_en = INREG(AVIVO_DC_CRTC_MASTER_EN);
+     state->crtc_tv_control = INREG(AVIVO_DC_CRTC_TV_CONTROL);
++    state->dc_lb_memory_split = INREG(AVIVO_DC_LB_MEMORY_SPLIT);
+ 
+     state->pll1.ref_div_src = INREG(AVIVO_EXT1_PPLL_REF_DIV_SRC);
+     state->pll1.ref_div = INREG(AVIVO_EXT1_PPLL_REF_DIV);
+@@ -4233,8 +4268,10 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save)
+     state->grph1.x_end = INREG(AVIVO_D1GRPH_X_END);
+     state->grph1.y_end = INREG(AVIVO_D1GRPH_Y_END);
+ 
++    state->grph1.desktop_height = INREG(AVIVO_D1MODE_DESKTOP_HEIGHT);
+     state->grph1.viewport_start = INREG(AVIVO_D1MODE_VIEWPORT_START);
+     state->grph1.viewport_size = INREG(AVIVO_D1MODE_VIEWPORT_SIZE);
++    state->grph1.mode_data_format = INREG(AVIVO_D1MODE_DATA_FORMAT);
+ 
+     state->crtc2.pll_source = INREG(AVIVO_PCLK_CRTC2_CNTL);
+ 
+@@ -4272,8 +4309,10 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save)
+     state->grph2.x_end = INREG(AVIVO_D2GRPH_X_END);
+     state->grph2.y_end = INREG(AVIVO_D2GRPH_Y_END);
+ 
++    state->grph2.desktop_height = INREG(AVIVO_D2MODE_DESKTOP_HEIGHT);
+     state->grph2.viewport_start = INREG(AVIVO_D2MODE_VIEWPORT_START);
+     state->grph2.viewport_size = INREG(AVIVO_D2MODE_VIEWPORT_SIZE);
++    state->grph2.mode_data_format = INREG(AVIVO_D2MODE_DATA_FORMAT);
+ 
+     if (IS_DCE3_VARIANT) {
+ 	/* save DVOA regs */
+@@ -4477,14 +4516,71 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+     struct avivo_state *state = &restore->avivo;
+     int i, j;
+ 
+-    //    OUTMC(pScrn, AVIVO_MC_MEMORY_MAP, state->mc_memory_map);
+-    //    OUTREG(AVIVO_VGA_MEMORY_BASE, state->vga_memory_base);
+-    //    OUTREG(AVIVO_VGA_FB_START, state->vga_fb_start);
++    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "avivo_restore !\n");
++
++    /* Disable VGA control for now.. maybe needs to be changed */
++    OUTREG(AVIVO_D1VGA_CONTROL, 0);
++    OUTREG(AVIVO_D2VGA_CONTROL, 0);
++
++    /* Disable CRTCs */
++    OUTREG(AVIVO_D1CRTC_CONTROL,
++	   (INREG(AVIVO_D1CRTC_CONTROL) & ~0x300) | 0x01000000);
++    OUTREG(AVIVO_D2CRTC_CONTROL,
++	   (INREG(AVIVO_D2CRTC_CONTROL) & ~0x300) | 0x01000000);
++    OUTREG(AVIVO_D1CRTC_CONTROL,
++	   INREG(AVIVO_D1CRTC_CONTROL) & ~0x1);
++    OUTREG(AVIVO_D2CRTC_CONTROL,
++	   INREG(AVIVO_D2CRTC_CONTROL) & ~0x1);
++    OUTREG(AVIVO_D1CRTC_CONTROL,
++	   INREG(AVIVO_D1CRTC_CONTROL) | 0x100);
++    OUTREG(AVIVO_D2CRTC_CONTROL,
++	   INREG(AVIVO_D2CRTC_CONTROL) | 0x100);
++
++    /* Lock graph registers */
++    OUTREG(AVIVO_D1GRPH_UPDATE, AVIVO_D1GRPH_UPDATE_LOCK);
++    OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS, state->grph1.prim_surf_addr);
++    OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS, state->grph1.sec_surf_addr);
++    OUTREG(AVIVO_D1GRPH_CONTROL, state->grph1.control);
++    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X, state->grph1.x_offset);
++    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y, state->grph1.y_offset);
++    OUTREG(AVIVO_D1GRPH_X_START, state->grph1.x_start);
++    OUTREG(AVIVO_D1GRPH_Y_START, state->grph1.y_start);
++    OUTREG(AVIVO_D1GRPH_X_END, state->grph1.x_end);
++    OUTREG(AVIVO_D1GRPH_Y_END, state->grph1.y_end);
++    OUTREG(AVIVO_D1GRPH_PITCH, state->grph1.pitch);
++    OUTREG(AVIVO_D1GRPH_ENABLE, state->grph1.enable);
++    OUTREG(AVIVO_D1GRPH_UPDATE, 0);
++
++    OUTREG(AVIVO_D2GRPH_UPDATE, AVIVO_D1GRPH_UPDATE_LOCK);
++    OUTREG(AVIVO_D2GRPH_PRIMARY_SURFACE_ADDRESS, state->grph2.prim_surf_addr);
++    OUTREG(AVIVO_D2GRPH_SECONDARY_SURFACE_ADDRESS, state->grph2.sec_surf_addr);
++    OUTREG(AVIVO_D2GRPH_CONTROL, state->grph2.control);
++    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_X, state->grph2.x_offset);
++    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_Y, state->grph2.y_offset);
++    OUTREG(AVIVO_D2GRPH_X_START, state->grph2.x_start);
++    OUTREG(AVIVO_D2GRPH_Y_START, state->grph2.y_start);
++    OUTREG(AVIVO_D2GRPH_X_END, state->grph2.x_end);
++    OUTREG(AVIVO_D2GRPH_Y_END, state->grph2.y_end);
++    OUTREG(AVIVO_D2GRPH_PITCH, state->grph2.pitch);
++    OUTREG(AVIVO_D2GRPH_ENABLE, state->grph2.enable);
++    OUTREG(AVIVO_D2GRPH_UPDATE, 0);
+ 
++    /* Whack some mode regs too */
++    OUTREG(AVIVO_D1SCL_UPDATE, AVIVO_D1SCL_UPDATE_LOCK);
++    OUTREG(AVIVO_D1MODE_DESKTOP_HEIGHT, state->grph1.desktop_height);
++    OUTREG(AVIVO_D1MODE_VIEWPORT_START, state->grph1.viewport_start);
++    OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE, state->grph1.viewport_size);
++    OUTREG(AVIVO_D1MODE_DATA_FORMAT, state->grph1.mode_data_format);
++    OUTREG(AVIVO_D1SCL_UPDATE, 0);
+ 
+-    OUTREG(AVIVO_DC_CRTC_MASTER_EN, state->crtc_master_en);
+-    OUTREG(AVIVO_DC_CRTC_TV_CONTROL, state->crtc_tv_control);
++    OUTREG(AVIVO_D2SCL_UPDATE, AVIVO_D1SCL_UPDATE_LOCK);
++    OUTREG(AVIVO_D2MODE_DESKTOP_HEIGHT, state->grph2.desktop_height);
++    OUTREG(AVIVO_D2MODE_VIEWPORT_START, state->grph2.viewport_start);
++    OUTREG(AVIVO_D2MODE_VIEWPORT_SIZE, state->grph2.viewport_size);
++    OUTREG(AVIVO_D2MODE_DATA_FORMAT, state->grph2.mode_data_format);
++    OUTREG(AVIVO_D2SCL_UPDATE, 0);
+ 
++    /* Set the PLL */
+     OUTREG(AVIVO_EXT1_PPLL_REF_DIV_SRC, state->pll1.ref_div_src);
+     OUTREG(AVIVO_EXT1_PPLL_REF_DIV, state->pll1.ref_div);
+     OUTREG(AVIVO_EXT1_PPLL_FB_DIV, state->pll1.fb_div);
+@@ -4504,7 +4600,9 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+     OUTREG(AVIVO_P2PLL_INT_SS_CNTL, state->pll2.int_ss_cntl);
+ 
+     OUTREG(AVIVO_PCLK_CRTC1_CNTL, state->crtc1.pll_source);
++    OUTREG(AVIVO_PCLK_CRTC2_CNTL, state->crtc2.pll_source);
+ 
++    /* Set the CRTC */
+     OUTREG(AVIVO_D1CRTC_H_TOTAL, state->crtc1.h_total);
+     OUTREG(AVIVO_D1CRTC_H_BLANK_START_END, state->crtc1.h_blank_start_end);
+     OUTREG(AVIVO_D1CRTC_H_SYNC_A, state->crtc1.h_sync_a);
+@@ -4519,29 +4617,12 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+     OUTREG(AVIVO_D1CRTC_V_SYNC_B, state->crtc1.v_sync_b);
+     OUTREG(AVIVO_D1CRTC_V_SYNC_B_CNTL, state->crtc1.v_sync_b_cntl);
+ 
+-    OUTREG(AVIVO_D1CRTC_CONTROL, state->crtc1.control);
+-    OUTREG(AVIVO_D1CRTC_BLANK_CONTROL, state->crtc1.blank_control);
+     OUTREG(AVIVO_D1CRTC_INTERLACE_CONTROL, state->crtc1.interlace_control);
+     OUTREG(AVIVO_D1CRTC_STEREO_CONTROL, state->crtc1.stereo_control);
+ 
+     OUTREG(AVIVO_D1CUR_CONTROL, state->crtc1.cursor_control);
+ 
+-    OUTREG(AVIVO_D1GRPH_ENABLE, state->grph1.enable);
+-    OUTREG(AVIVO_D1GRPH_CONTROL, state->grph1.control);
+-    OUTREG(AVIVO_D1GRPH_PRIMARY_SURFACE_ADDRESS, state->grph1.prim_surf_addr);
+-    OUTREG(AVIVO_D1GRPH_SECONDARY_SURFACE_ADDRESS, state->grph1.sec_surf_addr);
+-    OUTREG(AVIVO_D1GRPH_PITCH, state->grph1.pitch);
+-    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_X, state->grph1.x_offset);
+-    OUTREG(AVIVO_D1GRPH_SURFACE_OFFSET_Y, state->grph1.y_offset);
+-    OUTREG(AVIVO_D1GRPH_X_START, state->grph1.x_start);
+-    OUTREG(AVIVO_D1GRPH_Y_START, state->grph1.y_start);
+-    OUTREG(AVIVO_D1GRPH_X_END, state->grph1.x_end);
+-    OUTREG(AVIVO_D1GRPH_Y_END, state->grph1.y_end);
+-
+-    OUTREG(AVIVO_D1MODE_VIEWPORT_START, state->grph1.viewport_start);
+-    OUTREG(AVIVO_D1MODE_VIEWPORT_SIZE, state->grph1.viewport_size);
+-
+-    OUTREG(AVIVO_PCLK_CRTC2_CNTL, state->crtc2.pll_source);
++    /* XXX Fix scaler */
+ 
+     OUTREG(AVIVO_D2CRTC_H_TOTAL, state->crtc2.h_total);
+     OUTREG(AVIVO_D2CRTC_H_BLANK_START_END, state->crtc2.h_blank_start_end);
+@@ -4557,29 +4638,11 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+     OUTREG(AVIVO_D2CRTC_V_SYNC_B, state->crtc2.v_sync_b);
+     OUTREG(AVIVO_D2CRTC_V_SYNC_B_CNTL, state->crtc2.v_sync_b_cntl);
+ 
+-    OUTREG(AVIVO_D2CRTC_CONTROL, state->crtc2.control);
+-    OUTREG(AVIVO_D2CRTC_BLANK_CONTROL, state->crtc2.blank_control);
+     OUTREG(AVIVO_D2CRTC_INTERLACE_CONTROL, state->crtc2.interlace_control);
+     OUTREG(AVIVO_D2CRTC_STEREO_CONTROL, state->crtc2.stereo_control);
+ 
+     OUTREG(AVIVO_D2CUR_CONTROL, state->crtc2.cursor_control);
+ 
+-    OUTREG(AVIVO_D2GRPH_ENABLE, state->grph2.enable);
+-    OUTREG(AVIVO_D2GRPH_CONTROL, state->grph2.control);
+-    OUTREG(AVIVO_D2GRPH_PRIMARY_SURFACE_ADDRESS, state->grph2.prim_surf_addr);
+-    OUTREG(AVIVO_D2GRPH_SECONDARY_SURFACE_ADDRESS, state->grph2.sec_surf_addr);
+-    OUTREG(AVIVO_D2GRPH_PITCH, state->grph2.pitch);
+-    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_X, state->grph2.x_offset);
+-    OUTREG(AVIVO_D2GRPH_SURFACE_OFFSET_Y, state->grph2.y_offset);
+-    OUTREG(AVIVO_D2GRPH_X_START, state->grph2.x_start);
+-    OUTREG(AVIVO_D2GRPH_Y_START, state->grph2.y_start);
+-    OUTREG(AVIVO_D2GRPH_X_END, state->grph2.x_end);
+-    OUTREG(AVIVO_D2GRPH_Y_END, state->grph2.y_end);
+-
+-    OUTREG(AVIVO_D2MODE_VIEWPORT_START, state->grph2.viewport_start);
+-    OUTREG(AVIVO_D2MODE_VIEWPORT_SIZE, state->grph2.viewport_size);
+-
+-
+     if (IS_DCE3_VARIANT) {
+ 	/* DVOA regs */
+ 	OUTREG(0x7080, state->dvoa[0]);
+@@ -4699,7 +4762,7 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+ 	}
+ 
+ 	j = 0;
+-	/* DAC regs */
++	/* DAC regs */ /* -- MIGHT NEED ORDERING FIX & DELAYS -- */
+ 	for (i = 0x7800; i <= 0x782c; i += 4) {
+ 	    OUTREG(i, state->daca[j]);
+ 	    OUTREG((i + 0x200), state->dacb[j]);
+@@ -4766,8 +4829,31 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+     OUTREG(0x6e30, state->dxscl[6]);
+     OUTREG(0x6e34, state->dxscl[7]);
+ 
++    /* Enable CRTCs */
++    if (state->crtc1.control & 1) {
++	    OUTREG(AVIVO_D1CRTC_CONTROL, 0x01000101);
++	    INREG(AVIVO_D1CRTC_CONTROL);
++	    OUTREG(AVIVO_D1CRTC_CONTROL, 0x00010101);
++    }
++    if (state->crtc2.control & 1) {
++	    OUTREG(AVIVO_D2CRTC_CONTROL, 0x01000101);
++	    INREG(AVIVO_D2CRTC_CONTROL);
++	    OUTREG(AVIVO_D2CRTC_CONTROL, 0x00010101);
++    }
++
++    /* Where should that go ? */
++    OUTREG(AVIVO_DC_CRTC_TV_CONTROL, state->crtc_tv_control);
++    OUTREG(AVIVO_DC_LB_MEMORY_SPLIT, state->dc_lb_memory_split);
++
++    /* Need fixing too ? */
++    OUTREG(AVIVO_D1CRTC_BLANK_CONTROL, state->crtc1.blank_control);
++    OUTREG(AVIVO_D2CRTC_BLANK_CONTROL, state->crtc2.blank_control);
++
++    /* Dbl check */
+     OUTREG(AVIVO_D1VGA_CONTROL, state->vga1_cntl);
+     OUTREG(AVIVO_D2VGA_CONTROL, state->vga2_cntl);
++
++    /* Should only enable outputs here */
+ }
+ 
+ static void avivo_restore_vga_regs(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+@@ -5045,7 +5131,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+     Bool           tilingOld   = info->tilingEnabled;
+     Bool           ret;
+ #ifdef XF86DRI
+-    Bool           CPStarted   = info->CPStarted;
++    Bool           CPStarted   = info->cp->CPStarted;
+ 
+     if (CPStarted) {
+ 	DRILock(pScrn->pScreen, 0);
+@@ -5060,7 +5146,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+         info->tilingEnabled = (mode->Flags & (V_DBLSCAN | V_INTERLACE)) ? FALSE : TRUE;
+ #ifdef XF86DRI	
+ 	if (info->directRenderingEnabled && (info->tilingEnabled != tilingOld)) {
+-	    RADEONSAREAPrivPtr pSAREAPriv;
++	    drm_radeon_sarea_t *pSAREAPriv;
+ 	  if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_SWITCH_TILING, (info->tilingEnabled ? 1 : 0)) < 0)
+   	      xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			 "[drm] failed changing tiling status\n");
+@@ -5170,7 +5256,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2)
+     unsigned char *RADEONMMIO = info->MMIO;
+     int            Base, reg, regcntl, crtcoffsetcntl, xytilereg, crtcxytile = 0;
+ #ifdef XF86DRI
+-    RADEONSAREAPrivPtr pSAREAPriv;
++    drm_radeon_sarea_t *pSAREAPriv;
+     XF86DRISAREAPtr pSAREA;
+ #endif
+ 
+@@ -5209,7 +5295,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2)
+ #if 0
+     /* try to get rid of flickering when scrolling at least for 2d */
+ #ifdef XF86DRI
+-    if (!info->have3DWindows)
++    if (!info->dri->have3DWindows)
+ #endif
+     crtcoffsetcntl &= ~RADEON_CRTC_OFFSET_FLIP_CNTL;
+ #endif
+@@ -5266,7 +5352,7 @@ void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, Bool crtc2)
+ 	}
+ 
+ 	if (pSAREAPriv->pfCurrentPage == 1) {
+-	    Base += info->backOffset - info->frontOffset;
++	    Base += info->dri->backOffset - info->dri->frontOffset;
+ 	}
+     }
+ #endif
+@@ -5290,7 +5376,7 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
+     xf86CrtcPtr	crtc = output->crtc;
+ 
+ #ifdef XF86DRI
+-    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
++    if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
+ #endif
+ 
+     if (info->accelOn)
+@@ -5307,7 +5393,7 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
+ 
+ 
+ #ifdef XF86DRI
+-	if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
++	if (info->cp->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
+ #endif
+ }
+ 
+@@ -5318,26 +5404,18 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+ {
+     ScrnInfoPtr    pScrn = xf86Screens[scrnIndex];
+     RADEONInfoPtr  info  = RADEONPTR(pScrn);
+-    unsigned char *RADEONMMIO = info->MMIO;
+-    uint32_t mem_size;
+     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+     int i;
+ 
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		   "RADEONEnterVT\n");
+ 
+-    if (info->ChipFamily >= CHIP_FAMILY_R600)
+-	mem_size = INREG(R600_CONFIG_MEMSIZE);
+-    else
+-	mem_size = INREG(RADEON_CONFIG_MEMSIZE);
+-
+-    if (mem_size == 0) { /* Softboot V_BIOS */
++    if (!radeon_card_posted(pScrn)) { /* Softboot V_BIOS */
+ 	if (info->IsAtomBios) {
+ 	    rhdAtomASICInit(info->atomBIOS);
+ 	} else {
+ 	    xf86Int10InfoPtr pInt;
+-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+-		       "zero MEMSIZE, probably at D3cold. Re-POSTing via int10.\n");
++
+ 	    pInt = xf86InitInt10 (info->pEnt->index);
+ 	    if (pInt) {
+ 		pInt->num = 0xe6;
+@@ -5382,10 +5460,10 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+ #ifdef XF86DRI
+     if (info->directRenderingEnabled) {
+     	if (info->cardType == CARD_PCIE &&
+-	    info->pKernelDRMVersion->version_minor >= 19 &&
++	    info->dri->pKernelDRMVersion->version_minor >= 19 &&
+ 	    info->FbSecureSize) {
+ 	    /* we need to backup the PCIE GART TABLE from fb memory */
+-	    memcpy(info->FB + info->pciGartOffset, info->pciGartBackup, info->pciGartSize);
++	    memcpy(info->FB + info->dri->pciGartOffset, info->dri->pciGartBackup, info->dri->pciGartSize);
+     	}
+ 
+ 	/* get the DRI back into shape after resume */
+@@ -5433,18 +5511,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+ 	RADEONCP_STOP(pScrn, info);
+ 
+         if (info->cardType == CARD_PCIE &&
+-	    info->pKernelDRMVersion->version_minor >= 19 &&
++	    info->dri->pKernelDRMVersion->version_minor >= 19 &&
+ 	    info->FbSecureSize) {
+             /* we need to backup the PCIE GART TABLE from fb memory */
+-            memcpy(info->pciGartBackup, (info->FB + info->pciGartOffset), info->pciGartSize);
++            memcpy(info->dri->pciGartBackup, (info->FB + info->dri->pciGartOffset), info->dri->pciGartSize);
+         }
+ 
+ 	/* Make sure 3D clients will re-upload textures to video RAM */
+-	if (info->textureSize) {
+-	    RADEONSAREAPrivPtr pSAREAPriv =
+-		(RADEONSAREAPrivPtr)DRIGetSAREAPrivate(pScrn->pScreen);
+-	    drmTextureRegionPtr list = pSAREAPriv->texList[0];
+-	    int age = ++pSAREAPriv->texAge[0];
++	if (info->dri->textureSize) {
++	    drm_radeon_sarea_t *pSAREAPriv =
++		(drm_radeon_sarea_t*)DRIGetSAREAPrivate(pScrn->pScreen);
++	    struct drm_tex_region *list = pSAREAPriv->tex_list[0];
++	    int age = ++pSAREAPriv->tex_age[0];
+ 
+ 	    i = 0;
+ 
+@@ -5501,12 +5579,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ 
+ #ifdef XF86DRI
+ #ifdef DAMAGE
+-    if (info->pDamage) {
++    if (info->dri && info->dri->pDamage) {
+ 	PixmapPtr pPix = pScreen->GetScreenPixmap(pScreen);
+ 
+-	DamageUnregister(&pPix->drawable, info->pDamage);
+-	DamageDestroy(info->pDamage);
+-	info->pDamage = NULL;
++	DamageUnregister(&pPix->drawable, info->dri->pDamage);
++	DamageDestroy(info->dri->pDamage);
++	info->dri->pDamage = NULL;
+     }
+ #endif
+ 
+@@ -5514,9 +5592,9 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ #endif
+ 
+ #ifdef USE_XAA
+-    if(!info->useEXA && info->RenderTex) {
+-        xf86FreeOffscreenLinear(info->RenderTex);
+-        info->RenderTex = NULL;
++    if(!info->useEXA && info->accel_state->RenderTex) {
++        xf86FreeOffscreenLinear(info->accel_state->RenderTex);
++        info->accel_state->RenderTex = NULL;
+     }
+ #endif /* USE_XAA */
+ 
+@@ -5527,21 +5605,21 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
+ 		   "Disposing accel...\n");
+ #ifdef USE_EXA
+-    if (info->exa) {
++    if (info->accel_state->exa) {
+ 	exaDriverFini(pScreen);
+-	xfree(info->exa);
+-	info->exa = NULL;
++	xfree(info->accel_state->exa);
++	info->accel_state->exa = NULL;
+     }
+ #endif /* USE_EXA */
+ #ifdef USE_XAA
+     if (!info->useEXA) {
+-	if (info->accel)
+-		XAADestroyInfoRec(info->accel);
+-	info->accel = NULL;
++	if (info->accel_state->accel)
++		XAADestroyInfoRec(info->accel_state->accel);
++	info->accel_state->accel = NULL;
+ 
+-	if (info->scratch_save)
+-	    xfree(info->scratch_save);
+-	info->scratch_save = NULL;
++	if (info->accel_state->scratch_save)
++	    xfree(info->accel_state->scratch_save);
++	info->accel_state->scratch_save = NULL;
+     }
+ #endif /* USE_XAA */
+ 
+diff --git a/src/radeon_drm.h b/src/radeon_drm.h
+new file mode 100644
+index 0000000..66cefb7
+--- /dev/null
++++ b/src/radeon_drm.h
+@@ -0,0 +1,756 @@
++/* radeon_drm.h -- Public header for the radeon driver -*- linux-c -*-
++ *
++ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
++ * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
++ * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
++ * All rights reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Authors:
++ *    Kevin E. Martin <martin@valinux.com>
++ *    Gareth Hughes <gareth@valinux.com>
++ *    Keith Whitwell <keith@tungstengraphics.com>
++ */
++
++#ifndef __RADEON_DRM_H__
++#define __RADEON_DRM_H__
++
++/* WARNING: If you change any of these defines, make sure to change the
++ * defines in the X server file (radeon_sarea.h)
++ */
++#ifndef __RADEON_SAREA_DEFINES__
++#define __RADEON_SAREA_DEFINES__
++
++/* Old style state flags, required for sarea interface (1.1 and 1.2
++ * clears) and 1.2 drm_vertex2 ioctl.
++ */
++#define RADEON_UPLOAD_CONTEXT		0x00000001
++#define RADEON_UPLOAD_VERTFMT		0x00000002
++#define RADEON_UPLOAD_LINE		0x00000004
++#define RADEON_UPLOAD_BUMPMAP		0x00000008
++#define RADEON_UPLOAD_MASKS		0x00000010
++#define RADEON_UPLOAD_VIEWPORT		0x00000020
++#define RADEON_UPLOAD_SETUP		0x00000040
++#define RADEON_UPLOAD_TCL		0x00000080
++#define RADEON_UPLOAD_MISC		0x00000100
++#define RADEON_UPLOAD_TEX0		0x00000200
++#define RADEON_UPLOAD_TEX1		0x00000400
++#define RADEON_UPLOAD_TEX2		0x00000800
++#define RADEON_UPLOAD_TEX0IMAGES	0x00001000
++#define RADEON_UPLOAD_TEX1IMAGES	0x00002000
++#define RADEON_UPLOAD_TEX2IMAGES	0x00004000
++#define RADEON_UPLOAD_CLIPRECTS		0x00008000	/* handled client-side */
++#define RADEON_REQUIRE_QUIESCENCE	0x00010000
++#define RADEON_UPLOAD_ZBIAS		0x00020000	/* version 1.2 and newer */
++#define RADEON_UPLOAD_ALL		0x003effff
++#define RADEON_UPLOAD_CONTEXT_ALL       0x003e01ff
++
++/* New style per-packet identifiers for use in cmd_buffer ioctl with
++ * the RADEON_EMIT_PACKET command.  Comments relate new packets to old
++ * state bits and the packet size:
++ */
++#define RADEON_EMIT_PP_MISC                         0	/* context/7 */
++#define RADEON_EMIT_PP_CNTL                         1	/* context/3 */
++#define RADEON_EMIT_RB3D_COLORPITCH                 2	/* context/1 */
++#define RADEON_EMIT_RE_LINE_PATTERN                 3	/* line/2 */
++#define RADEON_EMIT_SE_LINE_WIDTH                   4	/* line/1 */
++#define RADEON_EMIT_PP_LUM_MATRIX                   5	/* bumpmap/1 */
++#define RADEON_EMIT_PP_ROT_MATRIX_0                 6	/* bumpmap/2 */
++#define RADEON_EMIT_RB3D_STENCILREFMASK             7	/* masks/3 */
++#define RADEON_EMIT_SE_VPORT_XSCALE                 8	/* viewport/6 */
++#define RADEON_EMIT_SE_CNTL                         9	/* setup/2 */
++#define RADEON_EMIT_SE_CNTL_STATUS                  10	/* setup/1 */
++#define RADEON_EMIT_RE_MISC                         11	/* misc/1 */
++#define RADEON_EMIT_PP_TXFILTER_0                   12	/* tex0/6 */
++#define RADEON_EMIT_PP_BORDER_COLOR_0               13	/* tex0/1 */
++#define RADEON_EMIT_PP_TXFILTER_1                   14	/* tex1/6 */
++#define RADEON_EMIT_PP_BORDER_COLOR_1               15	/* tex1/1 */
++#define RADEON_EMIT_PP_TXFILTER_2                   16	/* tex2/6 */
++#define RADEON_EMIT_PP_BORDER_COLOR_2               17	/* tex2/1 */
++#define RADEON_EMIT_SE_ZBIAS_FACTOR                 18	/* zbias/2 */
++#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT           19	/* tcl/11 */
++#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED   20	/* material/17 */
++#define R200_EMIT_PP_TXCBLEND_0                     21	/* tex0/4 */
++#define R200_EMIT_PP_TXCBLEND_1                     22	/* tex1/4 */
++#define R200_EMIT_PP_TXCBLEND_2                     23	/* tex2/4 */
++#define R200_EMIT_PP_TXCBLEND_3                     24	/* tex3/4 */
++#define R200_EMIT_PP_TXCBLEND_4                     25	/* tex4/4 */
++#define R200_EMIT_PP_TXCBLEND_5                     26	/* tex5/4 */
++#define R200_EMIT_PP_TXCBLEND_6                     27	/* /4 */
++#define R200_EMIT_PP_TXCBLEND_7                     28	/* /4 */
++#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0             29	/* tcl/7 */
++#define R200_EMIT_TFACTOR_0                         30	/* tf/7 */
++#define R200_EMIT_VTX_FMT_0                         31	/* vtx/5 */
++#define R200_EMIT_VAP_CTL                           32	/* vap/1 */
++#define R200_EMIT_MATRIX_SELECT_0                   33	/* msl/5 */
++#define R200_EMIT_TEX_PROC_CTL_2                    34	/* tcg/5 */
++#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL            35	/* tcl/1 */
++#define R200_EMIT_PP_TXFILTER_0                     36	/* tex0/6 */
++#define R200_EMIT_PP_TXFILTER_1                     37	/* tex1/6 */
++#define R200_EMIT_PP_TXFILTER_2                     38	/* tex2/6 */
++#define R200_EMIT_PP_TXFILTER_3                     39	/* tex3/6 */
++#define R200_EMIT_PP_TXFILTER_4                     40	/* tex4/6 */
++#define R200_EMIT_PP_TXFILTER_5                     41	/* tex5/6 */
++#define R200_EMIT_PP_TXOFFSET_0                     42	/* tex0/1 */
++#define R200_EMIT_PP_TXOFFSET_1                     43	/* tex1/1 */
++#define R200_EMIT_PP_TXOFFSET_2                     44	/* tex2/1 */
++#define R200_EMIT_PP_TXOFFSET_3                     45	/* tex3/1 */
++#define R200_EMIT_PP_TXOFFSET_4                     46	/* tex4/1 */
++#define R200_EMIT_PP_TXOFFSET_5                     47	/* tex5/1 */
++#define R200_EMIT_VTE_CNTL                          48	/* vte/1 */
++#define R200_EMIT_OUTPUT_VTX_COMP_SEL               49	/* vtx/1 */
++#define R200_EMIT_PP_TAM_DEBUG3                     50	/* tam/1 */
++#define R200_EMIT_PP_CNTL_X                         51	/* cst/1 */
++#define R200_EMIT_RB3D_DEPTHXY_OFFSET               52	/* cst/1 */
++#define R200_EMIT_RE_AUX_SCISSOR_CNTL               53	/* cst/1 */
++#define R200_EMIT_RE_SCISSOR_TL_0                   54	/* cst/2 */
++#define R200_EMIT_RE_SCISSOR_TL_1                   55	/* cst/2 */
++#define R200_EMIT_RE_SCISSOR_TL_2                   56	/* cst/2 */
++#define R200_EMIT_SE_VAP_CNTL_STATUS                57	/* cst/1 */
++#define R200_EMIT_SE_VTX_STATE_CNTL                 58	/* cst/1 */
++#define R200_EMIT_RE_POINTSIZE                      59	/* cst/1 */
++#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0       60	/* cst/4 */
++#define R200_EMIT_PP_CUBIC_FACES_0                  61
++#define R200_EMIT_PP_CUBIC_OFFSETS_0                62
++#define R200_EMIT_PP_CUBIC_FACES_1                  63
++#define R200_EMIT_PP_CUBIC_OFFSETS_1                64
++#define R200_EMIT_PP_CUBIC_FACES_2                  65
++#define R200_EMIT_PP_CUBIC_OFFSETS_2                66
++#define R200_EMIT_PP_CUBIC_FACES_3                  67
++#define R200_EMIT_PP_CUBIC_OFFSETS_3                68
++#define R200_EMIT_PP_CUBIC_FACES_4                  69
++#define R200_EMIT_PP_CUBIC_OFFSETS_4                70
++#define R200_EMIT_PP_CUBIC_FACES_5                  71
++#define R200_EMIT_PP_CUBIC_OFFSETS_5                72
++#define RADEON_EMIT_PP_TEX_SIZE_0                   73
++#define RADEON_EMIT_PP_TEX_SIZE_1                   74
++#define RADEON_EMIT_PP_TEX_SIZE_2                   75
++#define R200_EMIT_RB3D_BLENDCOLOR                   76
++#define R200_EMIT_TCL_POINT_SPRITE_CNTL             77
++#define RADEON_EMIT_PP_CUBIC_FACES_0                78
++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T0             79
++#define RADEON_EMIT_PP_CUBIC_FACES_1                80
++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T1             81
++#define RADEON_EMIT_PP_CUBIC_FACES_2                82
++#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2             83
++#define R200_EMIT_PP_TRI_PERF_CNTL                  84
++#define R200_EMIT_PP_AFS_0                          85
++#define R200_EMIT_PP_AFS_1                          86
++#define R200_EMIT_ATF_TFACTOR                       87
++#define R200_EMIT_PP_TXCTLALL_0                     88
++#define R200_EMIT_PP_TXCTLALL_1                     89
++#define R200_EMIT_PP_TXCTLALL_2                     90
++#define R200_EMIT_PP_TXCTLALL_3                     91
++#define R200_EMIT_PP_TXCTLALL_4                     92
++#define R200_EMIT_PP_TXCTLALL_5                     93
++#define R200_EMIT_VAP_PVS_CNTL                      94
++#define RADEON_MAX_STATE_PACKETS                    95
++
++/* Commands understood by cmd_buffer ioctl.  More can be added but
++ * obviously these can't be removed or changed:
++ */
++#define RADEON_CMD_PACKET      1	/* emit one of the register packets above */
++#define RADEON_CMD_SCALARS     2	/* emit scalar data */
++#define RADEON_CMD_VECTORS     3	/* emit vector data */
++#define RADEON_CMD_DMA_DISCARD 4	/* discard current dma buf */
++#define RADEON_CMD_PACKET3     5	/* emit hw packet */
++#define RADEON_CMD_PACKET3_CLIP 6	/* emit hw packet wrapped in cliprects */
++#define RADEON_CMD_SCALARS2     7	/* r200 stopgap */
++#define RADEON_CMD_WAIT         8	/* emit hw wait commands -- note:
++					 *  doesn't make the cpu wait, just
++					 *  the graphics hardware */
++#define RADEON_CMD_VECLINEAR	9       /* another r200 stopgap */
++
++typedef union {
++	int i;
++	struct {
++		unsigned char cmd_type, pad0, pad1, pad2;
++	} header;
++	struct {
++		unsigned char cmd_type, packet_id, pad0, pad1;
++	} packet;
++	struct {
++		unsigned char cmd_type, offset, stride, count;
++	} scalars;
++	struct {
++		unsigned char cmd_type, offset, stride, count;
++	} vectors;
++	struct {
++		unsigned char cmd_type, addr_lo, addr_hi, count;
++	} veclinear;
++	struct {
++		unsigned char cmd_type, buf_idx, pad0, pad1;
++	} dma;
++	struct {
++		unsigned char cmd_type, flags, pad0, pad1;
++	} wait;
++} drm_radeon_cmd_header_t;
++
++#define RADEON_WAIT_2D  0x1
++#define RADEON_WAIT_3D  0x2
++
++/* Allowed parameters for R300_CMD_PACKET3
++ */
++#define R300_CMD_PACKET3_CLEAR		0
++#define R300_CMD_PACKET3_RAW		1
++
++/* Commands understood by cmd_buffer ioctl for R300.
++ * The interface has not been stabilized, so some of these may be removed
++ * and eventually reordered before stabilization.
++ */
++#define R300_CMD_PACKET0		1
++#define R300_CMD_VPU			2	/* emit vertex program upload */
++#define R300_CMD_PACKET3		3	/* emit a packet3 */
++#define R300_CMD_END3D			4	/* emit sequence ending 3d rendering */
++#define R300_CMD_CP_DELAY		5
++#define R300_CMD_DMA_DISCARD		6
++#define R300_CMD_WAIT			7
++#	define R300_WAIT_2D		0x1
++#	define R300_WAIT_3D		0x2
++/* these two defines are DOING IT WRONG - however
++ * we have userspace which relies on using these.
++ * The wait interface is backwards compat new 
++ * code should use the NEW_WAIT defines below
++ * THESE ARE NOT BIT FIELDS
++ */
++#	define R300_WAIT_2D_CLEAN	0x3
++#	define R300_WAIT_3D_CLEAN	0x4
++
++#	define R300_NEW_WAIT_2D_3D	0x3
++#	define R300_NEW_WAIT_2D_2D_CLEAN	0x4
++#	define R300_NEW_WAIT_3D_3D_CLEAN	0x6
++#	define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN	0x8
++
++#define R300_CMD_SCRATCH		8
++#define R300_CMD_R500FP                 9
++
++typedef union {
++	unsigned int u;
++	struct {
++		unsigned char cmd_type, pad0, pad1, pad2;
++	} header;
++	struct {
++		unsigned char cmd_type, count, reglo, reghi;
++	} packet0;
++	struct {
++		unsigned char cmd_type, count, adrlo, adrhi;
++	} vpu;
++	struct {
++		unsigned char cmd_type, packet, pad0, pad1;
++	} packet3;
++	struct {
++		unsigned char cmd_type, packet;
++		unsigned short count;	/* amount of packet2 to emit */
++	} delay;
++	struct {
++		unsigned char cmd_type, buf_idx, pad0, pad1;
++	} dma;
++	struct {
++		unsigned char cmd_type, flags, pad0, pad1;
++	} wait;
++	struct {
++		unsigned char cmd_type, reg, n_bufs, flags;
++	} scratch;
++	struct {
++		unsigned char cmd_type, count, adrlo, adrhi_flags;
++	} r500fp;
++} drm_r300_cmd_header_t;
++
++#define RADEON_FRONT			0x1
++#define RADEON_BACK			0x2
++#define RADEON_DEPTH			0x4
++#define RADEON_STENCIL			0x8
++#define RADEON_CLEAR_FASTZ		0x80000000
++#define RADEON_USE_HIERZ		0x40000000
++#define RADEON_USE_COMP_ZBUF		0x20000000
++
++#define R500FP_CONSTANT_TYPE  (1 << 1)
++#define R500FP_CONSTANT_CLAMP (1 << 2)
++
++/* Primitive types
++ */
++#define RADEON_POINTS			0x1
++#define RADEON_LINES			0x2
++#define RADEON_LINE_STRIP		0x3
++#define RADEON_TRIANGLES		0x4
++#define RADEON_TRIANGLE_FAN		0x5
++#define RADEON_TRIANGLE_STRIP		0x6
++
++/* Vertex/indirect buffer size
++ */
++#define RADEON_BUFFER_SIZE		65536
++
++/* Byte offsets for indirect buffer data
++ */
++#define RADEON_INDEX_PRIM_OFFSET	20
++
++#define RADEON_SCRATCH_REG_OFFSET	32
++#define R600_SCRATCH_REG_OFFSET	        256
++
++#define RADEON_NR_SAREA_CLIPRECTS	12
++
++/* There are 2 heaps (local/GART).  Each region within a heap is a
++ * minimum of 64k, and there are at most 64 of them per heap.
++ */
++#define RADEON_LOCAL_TEX_HEAP		0
++#define RADEON_GART_TEX_HEAP		1
++#define RADEON_NR_TEX_HEAPS		2
++#define RADEON_NR_TEX_REGIONS		64
++#define RADEON_LOG_TEX_GRANULARITY	16
++
++#define RADEON_MAX_TEXTURE_LEVELS	12
++#define RADEON_MAX_TEXTURE_UNITS	3
++
++#define RADEON_MAX_SURFACES		8
++
++/* Blits have strict offset rules.  All blit offset must be aligned on
++ * a 1K-byte boundary.
++ */
++#define RADEON_OFFSET_SHIFT             10
++#define RADEON_OFFSET_ALIGN             (1 << RADEON_OFFSET_SHIFT)
++#define RADEON_OFFSET_MASK              (RADEON_OFFSET_ALIGN - 1)
++
++#endif				/* __RADEON_SAREA_DEFINES__ */
++
++typedef struct {
++	unsigned int red;
++	unsigned int green;
++	unsigned int blue;
++	unsigned int alpha;
++} radeon_color_regs_t;
++
++typedef struct {
++	/* Context state */
++	unsigned int pp_misc;	/* 0x1c14 */
++	unsigned int pp_fog_color;
++	unsigned int re_solid_color;
++	unsigned int rb3d_blendcntl;
++	unsigned int rb3d_depthoffset;
++	unsigned int rb3d_depthpitch;
++	unsigned int rb3d_zstencilcntl;
++
++	unsigned int pp_cntl;	/* 0x1c38 */
++	unsigned int rb3d_cntl;
++	unsigned int rb3d_coloroffset;
++	unsigned int re_width_height;
++	unsigned int rb3d_colorpitch;
++	unsigned int se_cntl;
++
++	/* Vertex format state */
++	unsigned int se_coord_fmt;	/* 0x1c50 */
++
++	/* Line state */
++	unsigned int re_line_pattern;	/* 0x1cd0 */
++	unsigned int re_line_state;
++
++	unsigned int se_line_width;	/* 0x1db8 */
++
++	/* Bumpmap state */
++	unsigned int pp_lum_matrix;	/* 0x1d00 */
++
++	unsigned int pp_rot_matrix_0;	/* 0x1d58 */
++	unsigned int pp_rot_matrix_1;
++
++	/* Mask state */
++	unsigned int rb3d_stencilrefmask;	/* 0x1d7c */
++	unsigned int rb3d_ropcntl;
++	unsigned int rb3d_planemask;
++
++	/* Viewport state */
++	unsigned int se_vport_xscale;	/* 0x1d98 */
++	unsigned int se_vport_xoffset;
++	unsigned int se_vport_yscale;
++	unsigned int se_vport_yoffset;
++	unsigned int se_vport_zscale;
++	unsigned int se_vport_zoffset;
++
++	/* Setup state */
++	unsigned int se_cntl_status;	/* 0x2140 */
++
++	/* Misc state */
++	unsigned int re_top_left;	/* 0x26c0 */
++	unsigned int re_misc;
++} drm_radeon_context_regs_t;
++
++typedef struct {
++	/* Zbias state */
++	unsigned int se_zbias_factor;	/* 0x1dac */
++	unsigned int se_zbias_constant;
++} drm_radeon_context2_regs_t;
++
++/* Setup registers for each texture unit
++ */
++typedef struct {
++	unsigned int pp_txfilter;
++	unsigned int pp_txformat;
++	unsigned int pp_txoffset;
++	unsigned int pp_txcblend;
++	unsigned int pp_txablend;
++	unsigned int pp_tfactor;
++	unsigned int pp_border_color;
++} drm_radeon_texture_regs_t;
++
++typedef struct {
++	unsigned int start;
++	unsigned int finish;
++	unsigned int prim:8;
++	unsigned int stateidx:8;
++	unsigned int numverts:16;	/* overloaded as offset/64 for elt prims */
++	unsigned int vc_format;	/* vertex format */
++} drm_radeon_prim_t;
++
++typedef struct {
++	drm_radeon_context_regs_t context;
++	drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS];
++	drm_radeon_context2_regs_t context2;
++	unsigned int dirty;
++} drm_radeon_state_t;
++
++typedef struct {
++	/* The channel for communication of state information to the
++	 * kernel on firing a vertex buffer with either of the
++	 * obsoleted vertex/index ioctls.
++	 */
++	drm_radeon_context_regs_t context_state;
++	drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS];
++	unsigned int dirty;
++	unsigned int vertsize;
++	unsigned int vc_format;
++
++	/* The current cliprects, or a subset thereof.
++	 */
++	struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS];
++	unsigned int nbox;
++
++	/* Counters for client-side throttling of rendering clients.
++	 */
++	unsigned int last_frame;
++	unsigned int last_dispatch;
++	unsigned int last_clear;
++
++	struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS +
++						       1];
++	unsigned int tex_age[RADEON_NR_TEX_HEAPS];
++	int ctx_owner;
++	int pfState;		/* number of 3d windows (0,1,2ormore) */
++	int pfCurrentPage;	/* which buffer is being displayed? */
++	int crtc2_base;		/* CRTC2 frame offset */
++	int tiling_enabled;	/* set by drm, read by 2d + 3d clients */
++} drm_radeon_sarea_t;
++
++/* WARNING: If you change any of these defines, make sure to change the
++ * defines in the Xserver file (xf86drmRadeon.h)
++ *
++ * KW: actually it's illegal to change any of this (backwards compatibility).
++ */
++
++/* Radeon specific ioctls
++ * The device specific ioctl range is 0x40 to 0x79.
++ */
++#define DRM_RADEON_CP_INIT    0x00
++#define DRM_RADEON_CP_START   0x01
++#define DRM_RADEON_CP_STOP    0x02
++#define DRM_RADEON_CP_RESET   0x03
++#define DRM_RADEON_CP_IDLE    0x04
++#define DRM_RADEON_RESET      0x05
++#define DRM_RADEON_FULLSCREEN 0x06
++#define DRM_RADEON_SWAP       0x07
++#define DRM_RADEON_CLEAR      0x08
++#define DRM_RADEON_VERTEX     0x09
++#define DRM_RADEON_INDICES    0x0A
++#define DRM_RADEON_NOT_USED
++#define DRM_RADEON_STIPPLE    0x0C
++#define DRM_RADEON_INDIRECT   0x0D
++#define DRM_RADEON_TEXTURE    0x0E
++#define DRM_RADEON_VERTEX2    0x0F
++#define DRM_RADEON_CMDBUF     0x10
++#define DRM_RADEON_GETPARAM   0x11
++#define DRM_RADEON_FLIP       0x12
++#define DRM_RADEON_ALLOC      0x13
++#define DRM_RADEON_FREE       0x14
++#define DRM_RADEON_INIT_HEAP  0x15
++#define DRM_RADEON_IRQ_EMIT   0x16
++#define DRM_RADEON_IRQ_WAIT   0x17
++#define DRM_RADEON_CP_RESUME  0x18
++#define DRM_RADEON_SETPARAM   0x19
++#define DRM_RADEON_SURF_ALLOC 0x1a
++#define DRM_RADEON_SURF_FREE  0x1b
++
++#define DRM_IOCTL_RADEON_CP_INIT    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
++#define DRM_IOCTL_RADEON_CP_START   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_START)
++#define DRM_IOCTL_RADEON_CP_STOP    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
++#define DRM_IOCTL_RADEON_CP_RESET   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESET)
++#define DRM_IOCTL_RADEON_CP_IDLE    DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE)
++#define DRM_IOCTL_RADEON_RESET      DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_RESET)
++#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t)
++#define DRM_IOCTL_RADEON_SWAP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_SWAP)
++#define DRM_IOCTL_RADEON_CLEAR      DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t)
++#define DRM_IOCTL_RADEON_VERTEX     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t)
++#define DRM_IOCTL_RADEON_INDICES    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t)
++#define DRM_IOCTL_RADEON_STIPPLE    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t)
++#define DRM_IOCTL_RADEON_INDIRECT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t)
++#define DRM_IOCTL_RADEON_TEXTURE    DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t)
++#define DRM_IOCTL_RADEON_VERTEX2    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t)
++#define DRM_IOCTL_RADEON_CMDBUF     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t)
++#define DRM_IOCTL_RADEON_GETPARAM   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t)
++#define DRM_IOCTL_RADEON_FLIP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_FLIP)
++#define DRM_IOCTL_RADEON_ALLOC      DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t)
++#define DRM_IOCTL_RADEON_FREE       DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t)
++#define DRM_IOCTL_RADEON_INIT_HEAP  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t)
++#define DRM_IOCTL_RADEON_IRQ_EMIT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t)
++#define DRM_IOCTL_RADEON_IRQ_WAIT   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t)
++#define DRM_IOCTL_RADEON_CP_RESUME  DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME)
++#define DRM_IOCTL_RADEON_SETPARAM   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t)
++#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
++#define DRM_IOCTL_RADEON_SURF_FREE  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
++
++typedef struct drm_radeon_init {
++	enum {
++		RADEON_INIT_CP = 0x01,
++		RADEON_CLEANUP_CP = 0x02,
++		RADEON_INIT_R200_CP = 0x03,
++		RADEON_INIT_R300_CP = 0x04,
++		RADEON_INIT_R600_CP = 0x05,
++	} func;
++	unsigned long sarea_priv_offset;
++	int is_pci; /* for overriding only */
++	int cp_mode;
++	int gart_size;
++	int ring_size;
++	int usec_timeout;
++
++	unsigned int fb_bpp;
++	unsigned int front_offset, front_pitch;
++	unsigned int back_offset, back_pitch;
++	unsigned int depth_bpp;
++	unsigned int depth_offset, depth_pitch;
++
++	/* DEPRECATED commented out below to allow for -Werror build */
++	unsigned long fb_offset /*DEPRECATED*/;	/* deprecated, driver asks hardware */
++	unsigned long mmio_offset /*DEPRECATED*/;	/* deprecated, driver asks hardware */
++	unsigned long ring_offset;
++	unsigned long ring_rptr_offset;
++	unsigned long buffers_offset;
++	unsigned long gart_textures_offset;
++} drm_radeon_init_t;
++
++typedef struct drm_radeon_cp_stop {
++	int flush;
++	int idle;
++} drm_radeon_cp_stop_t;
++
++typedef struct drm_radeon_fullscreen {
++	enum {
++		RADEON_INIT_FULLSCREEN = 0x01,
++		RADEON_CLEANUP_FULLSCREEN = 0x02
++	} func;
++} drm_radeon_fullscreen_t;
++
++#define CLEAR_X1	0
++#define CLEAR_Y1	1
++#define CLEAR_X2	2
++#define CLEAR_Y2	3
++#define CLEAR_DEPTH	4
++
++typedef union drm_radeon_clear_rect {
++	float f[5];
++	unsigned int ui[5];
++} drm_radeon_clear_rect_t;
++
++typedef struct drm_radeon_clear {
++	unsigned int flags;
++	unsigned int clear_color;
++	unsigned int clear_depth;
++	unsigned int color_mask;
++	unsigned int depth_mask;	/* misnamed field:  should be stencil */
++	drm_radeon_clear_rect_t __user *depth_boxes;
++} drm_radeon_clear_t;
++
++typedef struct drm_radeon_vertex {
++	int prim;
++	int idx;		/* Index of vertex buffer */
++	int count;		/* Number of vertices in buffer */
++	int discard;		/* Client finished with buffer? */
++} drm_radeon_vertex_t;
++
++typedef struct drm_radeon_indices {
++	int prim;
++	int idx;
++	int start;
++	int end;
++	int discard;		/* Client finished with buffer? */
++} drm_radeon_indices_t;
++
++/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices
++ *      - allows multiple primitives and state changes in a single ioctl
++ *      - supports driver change to emit native primitives
++ */
++typedef struct drm_radeon_vertex2 {
++	int idx;		/* Index of vertex buffer */
++	int discard;		/* Client finished with buffer? */
++	int nr_states;
++	drm_radeon_state_t __user *state;
++	int nr_prims;
++	drm_radeon_prim_t __user *prim;
++} drm_radeon_vertex2_t;
++
++/* v1.3 - obsoletes drm_radeon_vertex2
++ *      - allows arbitarily large cliprect list
++ *      - allows updating of tcl packet, vector and scalar state
++ *      - allows memory-efficient description of state updates
++ *      - allows state to be emitted without a primitive
++ *           (for clears, ctx switches)
++ *      - allows more than one dma buffer to be referenced per ioctl
++ *      - supports tcl driver
++ *      - may be extended in future versions with new cmd types, packets
++ */
++typedef struct drm_radeon_cmd_buffer {
++	int bufsz;
++	char __user *buf;
++	int nbox;
++	struct drm_clip_rect __user *boxes;
++} drm_radeon_cmd_buffer_t;
++
++typedef struct drm_radeon_tex_image {
++	unsigned int x, y;	/* Blit coordinates */
++	unsigned int width, height;
++	const void __user *data;
++} drm_radeon_tex_image_t;
++
++typedef struct drm_radeon_texture {
++	unsigned int offset;
++	int pitch;
++	int format;
++	int width;		/* Texture image coordinates */
++	int height;
++	drm_radeon_tex_image_t __user *image;
++} drm_radeon_texture_t;
++
++typedef struct drm_radeon_stipple {
++	unsigned int __user *mask;
++} drm_radeon_stipple_t;
++
++typedef struct drm_radeon_indirect {
++	int idx;
++	int start;
++	int end;
++	int discard;
++} drm_radeon_indirect_t;
++
++#define RADEON_INDIRECT_DISCARD (1 << 0)
++#define RADEON_INDIRECT_NOFLUSH (1 << 1)
++
++/* enum for card type parameters */
++#define RADEON_CARD_PCI 0
++#define RADEON_CARD_AGP 1
++#define RADEON_CARD_PCIE 2
++
++/* 1.3: An ioctl to get parameters that aren't available to the 3d
++ * client any other way.
++ */
++#define RADEON_PARAM_GART_BUFFER_OFFSET    1	/* card offset of 1st GART buffer */
++#define RADEON_PARAM_LAST_FRAME            2
++#define RADEON_PARAM_LAST_DISPATCH         3
++#define RADEON_PARAM_LAST_CLEAR            4
++/* Added with DRM version 1.6. */
++#define RADEON_PARAM_IRQ_NR                5
++#define RADEON_PARAM_GART_BASE             6	/* card offset of GART base */
++/* Added with DRM version 1.8. */
++#define RADEON_PARAM_REGISTER_HANDLE       7	/* for drmMap() */
++#define RADEON_PARAM_STATUS_HANDLE         8
++#define RADEON_PARAM_SAREA_HANDLE          9
++#define RADEON_PARAM_GART_TEX_HANDLE       10
++#define RADEON_PARAM_SCRATCH_OFFSET        11
++#define RADEON_PARAM_CARD_TYPE             12
++#define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */
++#define RADEON_PARAM_FB_LOCATION           14   /* FB location */
++#define RADEON_PARAM_NUM_GB_PIPES          15   /* num GB pipes */
++
++typedef struct drm_radeon_getparam {
++	int param;
++	void __user *value;
++} drm_radeon_getparam_t;
++
++/* 1.6: Set up a memory manager for regions of shared memory:
++ */
++#define RADEON_MEM_REGION_GART 1
++#define RADEON_MEM_REGION_FB   2
++
++typedef struct drm_radeon_mem_alloc {
++	int region;
++	int alignment;
++	int size;
++	int __user *region_offset;	/* offset from start of fb or GART */
++} drm_radeon_mem_alloc_t;
++
++typedef struct drm_radeon_mem_free {
++	int region;
++	int region_offset;
++} drm_radeon_mem_free_t;
++
++typedef struct drm_radeon_mem_init_heap {
++	int region;
++	int size;
++	int start;
++} drm_radeon_mem_init_heap_t;
++
++/* 1.6: Userspace can request & wait on irq's:
++ */
++typedef struct drm_radeon_irq_emit {
++	int __user *irq_seq;
++} drm_radeon_irq_emit_t;
++
++typedef struct drm_radeon_irq_wait {
++	int irq_seq;
++} drm_radeon_irq_wait_t;
++
++/* 1.10: Clients tell the DRM where they think the framebuffer is located in
++ * the card's address space, via a new generic ioctl to set parameters
++ */
++
++typedef struct drm_radeon_setparam {
++	unsigned int param;
++	int64_t value;
++} drm_radeon_setparam_t;
++
++#define RADEON_SETPARAM_FB_LOCATION    1	/* determined framebuffer location */
++#define RADEON_SETPARAM_SWITCH_TILING  2	/* enable/disable color tiling */
++#define RADEON_SETPARAM_PCIGART_LOCATION 3	/* PCI Gart Location */
++
++#define RADEON_SETPARAM_NEW_MEMMAP 4		/* Use new memory map */
++#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5    /* PCI GART Table Size */
++#define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */
++/* 1.14: Clients can allocate/free a surface
++ */
++typedef struct drm_radeon_surface_alloc {
++	unsigned int address;
++	unsigned int size;
++	unsigned int flags;
++} drm_radeon_surface_alloc_t;
++
++typedef struct drm_radeon_surface_free {
++	unsigned int address;
++} drm_radeon_surface_free_t;
++
++#define	DRM_RADEON_VBLANK_CRTC1		1
++#define	DRM_RADEON_VBLANK_CRTC2		2
++
++#endif
+diff --git a/src/radeon_exa.c b/src/radeon_exa.c
+index f461f3c..0f86fdd 100644
+--- a/src/radeon_exa.c
++++ b/src/radeon_exa.c
+@@ -36,14 +36,11 @@
+ #include "radeon.h"
+ #include "radeon_reg.h"
+ #ifdef XF86DRI
+-#include "radeon_dri.h"
++#include "radeon_drm.h"
+ #endif
+ #include "radeon_macros.h"
+ #include "radeon_probe.h"
+ #include "radeon_version.h"
+-#ifdef XF86DRI
+-#include "radeon_sarea.h"
+-#endif
+ 
+ #include "xf86.h"
+ 
+@@ -164,10 +161,10 @@ static Bool RADEONGetOffsetPitch(PixmapPtr pPix, int bpp, uint32_t *pitch_offset
+ {
+ 	RINFO_FROM_SCREEN(pPix->drawable.pScreen);
+ 
+-	if (pitch > 16320 || pitch % info->exa->pixmapPitchAlign != 0)
++	if (pitch > 16320 || pitch % info->accel_state->exa->pixmapPitchAlign != 0)
+ 		RADEON_FALLBACK(("Bad pitch 0x%08x\n", pitch));
+ 
+-	if (offset % info->exa->pixmapOffsetAlign != 0)
++	if (offset % info->accel_state->exa->pixmapOffsetAlign != 0)
+ 		RADEON_FALLBACK(("Bad offset 0x%08x\n", offset));
+ 
+ 	pitch = pitch >> 6;
+@@ -237,14 +234,14 @@ static Bool RADEONPrepareAccess(PixmapPtr pPix, int index)
+     }
+ #if defined(XF86DRI)
+     if (info->directRenderingEnabled && info->allowColorTiling) {
+-	drmRadeonSurfaceAlloc drmsurfalloc;
++	struct drm_radeon_surface_alloc drmsurfalloc;
+ 	int rc;
+ 
+         drmsurfalloc.address = offset;
+         drmsurfalloc.size = size;
+ 	drmsurfalloc.flags = flags | 1; /* bogus pitch to please DRM */
+ 
+-        rc = drmCommandWrite(info->drmFD, DRM_RADEON_SURF_ALLOC,
++        rc = drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_ALLOC,
+ 			     &drmsurfalloc, sizeof(drmsurfalloc));
+ 	if (rc < 0) {
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+@@ -280,10 +277,10 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index)
+         return;
+ #if defined(XF86DRI)
+     if (info->directRenderingEnabled && info->allowColorTiling) {
+-	drmRadeonSurfaceFree drmsurffree;
++	struct drm_radeon_surface_free drmsurffree;
+ 
+ 	drmsurffree.address = offset;
+-	drmCommandWrite(info->drmFD, DRM_RADEON_SURF_FREE,
++	drmCommandWrite(info->dri->drmFD, DRM_RADEON_SURF_FREE,
+ 			&drmsurffree, sizeof(drmsurffree));
+ 	swapper_surfaces[index] = 0;
+ 	return;
+@@ -302,7 +299,7 @@ static void RADEONFinishAccess(PixmapPtr pPix, int index)
+ do {									\
+ 	uint32_t wait_until = 0;			\
+ 	BEGIN_ACCEL(1);							\
+-	switch (info->engineMode) {					\
++	switch (info->accel_state->engineMode) {			\
+ 	case EXA_ENGINEMODE_UNKNOWN:					\
+ 	    wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN;	\
+ 	case EXA_ENGINEMODE_3D:						\
+@@ -312,14 +309,14 @@ do {									\
+ 	}								\
+ 	OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until);			\
+ 	FINISH_ACCEL();							\
+-        info->engineMode = EXA_ENGINEMODE_2D;                           \
++        info->accel_state->engineMode = EXA_ENGINEMODE_2D;              \
+ } while (0);
+ 
+ #define RADEON_SWITCH_TO_3D()						\
+ do {									\
+ 	uint32_t wait_until = 0;			\
+ 	BEGIN_ACCEL(1);							\
+-	switch (info->engineMode) {					\
++	switch (info->accel_state->engineMode) {			\
+ 	case EXA_ENGINEMODE_UNKNOWN:					\
+ 	    wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN;	\
+ 	case EXA_ENGINEMODE_2D:						\
+@@ -329,7 +326,7 @@ do {									\
+ 	}								\
+ 	OUT_ACCEL_REG(RADEON_WAIT_UNTIL, wait_until);			\
+ 	FINISH_ACCEL();							\
+-        info->engineMode = EXA_ENGINEMODE_3D;                           \
++        info->accel_state->engineMode = EXA_ENGINEMODE_3D;              \
+ } while (0);
+ 
+ #define ENTER_DRAW(x) TRACE
+@@ -352,6 +349,7 @@ do {									\
+ #undef ACCEL_PREAMBLE
+ #undef BEGIN_ACCEL
+ #undef OUT_ACCEL_REG
++#undef OUT_ACCEL_REG_F
+ #undef FINISH_ACCEL
+ 
+ #ifdef XF86DRI
+@@ -371,6 +369,13 @@ do {									\
+ #endif
+ #include "radeon_exa_funcs.c"
+ 
++#undef ACCEL_CP
++#undef ACCEL_PREAMBLE
++#undef BEGIN_ACCEL
++#undef OUT_ACCEL_REG
++#undef FINISH_ACCEL
++#undef OUT_RING_F
++
+ #endif /* XF86DRI */
+ 
+ /*
+@@ -386,12 +391,12 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
+     int screen_size;
+     int byteStride = pScrn->displayWidth * cpp;
+ 
+-    if (info->exa != NULL) {
++    if (info->accel_state->exa != NULL) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map already initialized\n");
+ 	return FALSE;
+     }
+-    info->exa = exaDriverAlloc();
+-    if (info->exa == NULL)
++    info->accel_state->exa = exaDriverAlloc();
++    if (info->accel_state->exa == NULL)
+ 	return FALSE;
+ 
+     /* Need to adjust screen size for 16 line tiles, and then make it align to.
+@@ -402,53 +407,52 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
+     else
+ 	screen_size = pScrn->virtualY * byteStride;
+ 
+-    info->exa->memoryBase = info->FB;
+-    info->exa->memorySize = info->FbMapSize - info->FbSecureSize;
+-    info->exa->offScreenBase = screen_size;
++    info->accel_state->exa->memoryBase = info->FB;
++    info->accel_state->exa->memorySize = info->FbMapSize - info->FbSecureSize;
++    info->accel_state->exa->offScreenBase = screen_size;
+ 
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Allocating from a screen of %ld kb\n",
+-	       info->exa->memorySize / 1024);
+-
++	       info->accel_state->exa->memorySize / 1024);
+ 
+     /* Reserve static area for hardware cursor */
+     if (!xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE)) {
+-	int cursor_size = 64 * 4 * 64;
+-	int c;
+-
+-	for (c = 0; c < xf86_config->num_crtc; c++) {
+-	    xf86CrtcPtr crtc = xf86_config->crtc[c];
+-	    RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+-
+-	    radeon_crtc->cursor_offset = info->exa->offScreenBase;
+-	    info->exa->offScreenBase += cursor_size;
+-
+-	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-		       "Will use %d kb for hardware cursor %d at offset 0x%08x\n",
+-		       (cursor_size * xf86_config->num_crtc) / 1024,
+-		       c,
+-		       (unsigned int)radeon_crtc->cursor_offset);
+-	}
+-
+-
++        int cursor_size = 64 * 4 * 64;
++        int align = IS_AVIVO_VARIANT ? 4096 : 256;
++        int c;
++
++        for (c = 0; c < xf86_config->num_crtc; c++) {
++            xf86CrtcPtr crtc = xf86_config->crtc[c];
++            RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
++
++            radeon_crtc->cursor_offset =
++                RADEON_ALIGN(info->accel_state->exa->offScreenBase, align);
++            info->accel_state->exa->offScreenBase = radeon_crtc->cursor_offset + cursor_size;
++
++            xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++                       "Will use %d kb for hardware cursor %d at offset 0x%08x\n",
++                       (cursor_size * xf86_config->num_crtc) / 1024,
++                       c,
++                       (unsigned int)radeon_crtc->cursor_offset);
++        }
+     }
+ 
+ #if defined(XF86DRI)
+     if (info->directRenderingEnabled) {
+-	int depthCpp = (info->depthBits - 8) / 4, l, next, depth_size;
++	int depthCpp = (info->dri->depthBits - 8) / 4, l, next, depth_size;
+ 
+-	info->frontOffset = 0;
+-	info->frontPitch = pScrn->displayWidth;
++	info->dri->frontOffset = 0;
++	info->dri->frontPitch = pScrn->displayWidth;
+ 
+         xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 	       "Will use %d kb for front buffer at offset 0x%08x\n",
+-	       screen_size / 1024, info->frontOffset);
++	       screen_size / 1024, info->dri->frontOffset);
+ 	RADEONDRIAllocatePCIGARTTable(pScreen);
+ 	
+ 	if (info->cardType==CARD_PCIE)
+ 	  xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		     "Will use %d kb for PCI GART at offset 0x%08x\n",
+-		     info->pciGartSize / 1024,
+-		     (int)info->pciGartOffset);
++		     info->dri->pciGartSize / 1024,
++		     (int)info->dri->pciGartOffset);
+ 
+ 	/* Reserve a static area for the back buffer the same size as the
+ 	 * visible screen.  XXX: This would be better initialized in ati_dri.c
+@@ -456,49 +460,49 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
+ 	 * don't last through VT switches, while the kernel's understanding of
+ 	 * offscreen locations does.
+ 	 */
+-	info->backPitch = pScrn->displayWidth;
+-	next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN);
+-	if (!info->noBackBuffer &&
+-	    next + screen_size <= info->exa->memorySize)
++	info->dri->backPitch = pScrn->displayWidth;
++	next = RADEON_ALIGN(info->accel_state->exa->offScreenBase, RADEON_BUFFER_ALIGN);
++	if (!info->dri->noBackBuffer &&
++	    next + screen_size <= info->accel_state->exa->memorySize)
+ 	{
+-	    info->backOffset = next;
+-	    info->exa->offScreenBase = next + screen_size;
++	    info->dri->backOffset = next;
++	    info->accel_state->exa->offScreenBase = next + screen_size;
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		       "Will use %d kb for back buffer at offset 0x%08x\n",
+-		       screen_size / 1024, info->backOffset);
++		       screen_size / 1024, info->dri->backOffset);
+ 	}
+ 
+ 	/* Reserve the static depth buffer, and adjust pitch and height to
+ 	 * handle tiling.
+ 	 */
+-	info->depthPitch = RADEON_ALIGN(pScrn->displayWidth, 32);
+-	depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->depthPitch * depthCpp;
+-	next = RADEON_ALIGN(info->exa->offScreenBase, RADEON_BUFFER_ALIGN);
+-	if (next + depth_size <= info->exa->memorySize)
++	info->dri->depthPitch = RADEON_ALIGN(pScrn->displayWidth, 32);
++	depth_size = RADEON_ALIGN(pScrn->virtualY, 16) * info->dri->depthPitch * depthCpp;
++	next = RADEON_ALIGN(info->accel_state->exa->offScreenBase, RADEON_BUFFER_ALIGN);
++	if (next + depth_size <= info->accel_state->exa->memorySize)
+ 	{
+-	    info->depthOffset = next;
+-	    info->exa->offScreenBase = next + depth_size;
++	    info->dri->depthOffset = next;
++	    info->accel_state->exa->offScreenBase = next + depth_size;
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		       "Will use %d kb for depth buffer at offset 0x%08x\n",
+-		       depth_size / 1024, info->depthOffset);
++		       depth_size / 1024, info->dri->depthOffset);
+ 	}
+ 	
+-	info->textureSize *= (info->exa->memorySize -
+-			      info->exa->offScreenBase) / 100;
++	info->dri->textureSize *= (info->accel_state->exa->memorySize -
++				   info->accel_state->exa->offScreenBase) / 100;
+ 
+-	l = RADEONLog2(info->textureSize / RADEON_NR_TEX_REGIONS);
++	l = RADEONLog2(info->dri->textureSize / RADEON_NR_TEX_REGIONS);
+ 	if (l < RADEON_LOG_TEX_GRANULARITY)
+ 	    l = RADEON_LOG_TEX_GRANULARITY;
+-	info->textureSize = (info->textureSize >> l) << l;
+-	if (info->textureSize >= 512 * 1024) {
+-	    info->textureOffset = info->exa->offScreenBase;
+-	    info->exa->offScreenBase += info->textureSize;
++	info->dri->textureSize = (info->dri->textureSize >> l) << l;
++	if (info->dri->textureSize >= 512 * 1024) {
++	    info->dri->textureOffset = info->accel_state->exa->offScreenBase;
++	    info->accel_state->exa->offScreenBase += info->dri->textureSize;
+ 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 		       "Will use %d kb for textures at offset 0x%08x\n",
+-		       info->textureSize / 1024, info->textureOffset);
++		       info->dri->textureSize / 1024, info->dri->textureOffset);
+ 	} else {
+ 	    /* Minimum texture size is for 2 256x256x32bpp textures */
+-	    info->textureSize = 0;
++	    info->dri->textureSize = 0;
+ 	}
+     } else
+ #endif /* XF86DRI */
+@@ -508,8 +512,8 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
+ 
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 	       "Will use %ld kb for X Server offscreen at offset 0x%08lx\n",
+-	       (info->exa->memorySize - info->exa->offScreenBase) /
+-	       1024, info->exa->offScreenBase);
++	       (info->accel_state->exa->memorySize - info->accel_state->exa->offScreenBase) /
++	       1024, info->accel_state->exa->offScreenBase);
+ 
+     return TRUE;
+ }
+diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
+index 56de23e..62224d0 100644
+--- a/src/radeon_exa_funcs.c
++++ b/src/radeon_exa_funcs.c
+@@ -65,7 +65,7 @@ FUNC_NAME(RADEONMarkSync)(ScreenPtr pScreen)
+ 
+     TRACE;
+ 
+-    return ++info->exaSyncMarker;
++    return ++info->accel_state->exaSyncMarker;
+ }
+ 
+ static void
+@@ -76,12 +76,12 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
+ 
+     TRACE;
+ 
+-    if (info->exaMarkerSynced != marker) {
++    if (info->accel_state->exaMarkerSynced != marker) {
+ 	FUNC_NAME(RADEONWaitForIdle)(pScrn);
+-	info->exaMarkerSynced = marker;
++	info->accel_state->exaMarkerSynced = marker;
+     }
+ 
+-    RADEONPTR(pScrn)->engineMode = EXA_ENGINEMODE_UNKNOWN;
++    RADEONPTR(pScrn)->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
+ }
+ 
+ static Bool
+@@ -172,8 +172,8 @@ FUNC_NAME(RADEONDoPrepareCopy)(ScrnInfoPtr pScrn, uint32_t src_pitch_offset,
+ 	RADEON_GMC_CLR_CMP_CNTL_DIS);
+     OUT_ACCEL_REG(RADEON_DP_WRITE_MASK, planemask);
+     OUT_ACCEL_REG(RADEON_DP_CNTL,
+-	((info->xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) |
+-	 (info->ydir >= 0 ? RADEON_DST_Y_TOP_TO_BOTTOM : 0)));
++	((info->accel_state->xdir >= 0 ? RADEON_DST_X_LEFT_TO_RIGHT : 0) |
++	 (info->accel_state->ydir >= 0 ? RADEON_DST_Y_TOP_TO_BOTTOM : 0)));
+     OUT_ACCEL_REG(RADEON_DST_PITCH_OFFSET, dst_pitch_offset);
+     OUT_ACCEL_REG(RADEON_SRC_PITCH_OFFSET, src_pitch_offset);
+     FINISH_ACCEL();
+@@ -190,8 +190,8 @@ FUNC_NAME(RADEONPrepareCopy)(PixmapPtr pSrc,   PixmapPtr pDst,
+ 
+     TRACE;
+ 
+-    info->xdir = xdir;
+-    info->ydir = ydir;
++    info->accel_state->xdir = xdir;
++    info->accel_state->ydir = ydir;
+ 
+     if (pDst->drawable.bitsPerPixel == 24)
+ 	RADEON_FALLBACK(("24bpp unsupported"));
+@@ -219,11 +219,11 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst,
+ 
+     TRACE;
+ 
+-    if (info->xdir < 0) {
++    if (info->accel_state->xdir < 0) {
+ 	srcX += w - 1;
+ 	dstX += w - 1;
+     }
+-    if (info->ydir < 0) {
++    if (info->accel_state->ydir < 0) {
+ 	srcY += h - 1;
+ 	dstY += h - 1;
+     }
+@@ -401,9 +401,9 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+ 	int swap = RADEON_HOST_DATA_SWAP_NONE, wpass = w * bpp / 8;
+ 	int hpass = min(h, scratch->total/2 / scratch_pitch);
+ 	uint32_t scratch_pitch_offset = scratch_pitch << 16
+-				    | (info->gartLocation + info->bufStart
++				    | (info->gartLocation + info->dri->bufStart
+ 				       + scratch->idx * scratch->total) >> 10;
+-	drmRadeonIndirect indirect;
++	drm_radeon_indirect_t indirect;
+ 	ACCEL_PREAMBLE();
+ 
+ 	RADEON_SWITCH_TO_2D();
+@@ -450,7 +450,7 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+ 	     * we'd really need is a way to reliably wait for the host interface
+ 	     * to be done with pushing the data to the host.
+ 	     */
+-	    while ((drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY)
++	    while ((drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY)
+ 		   && (i++ < RADEON_TIMEOUT))
+ 		;
+ 
+@@ -473,10 +473,10 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+ 	indirect.start = indirect.end = 0;
+ 	indirect.discard = 1;
+ 
+-	drmCommandWriteRead(info->drmFD, DRM_RADEON_INDIRECT,
+-			    &indirect, sizeof(drmRadeonIndirect));
++	drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INDIRECT,
++			    &indirect, sizeof(drm_radeon_indirect_t));
+ 
+-	info->exaMarkerSynced = info->exaSyncMarker;
++	info->accel_state->exaMarkerSynced = info->accel_state->exaSyncMarker;
+ 
+ 	return TRUE;
+     }
+@@ -522,35 +522,35 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ {
+     RINFO_FROM_SCREEN(pScreen);
+ 
+-    if (info->exa == NULL) {
++    if (info->accel_state->exa == NULL) {
+ 	xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map not set up\n");
+ 	return FALSE;
+     }
+ 
+-    info->exa->exa_major = EXA_VERSION_MAJOR;
+-    info->exa->exa_minor = EXA_VERSION_MINOR;
++    info->accel_state->exa->exa_major = EXA_VERSION_MAJOR;
++    info->accel_state->exa->exa_minor = EXA_VERSION_MINOR;
+ 
+-    info->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid);
+-    info->exa->Solid = FUNC_NAME(RADEONSolid);
+-    info->exa->DoneSolid = FUNC_NAME(RADEONDoneSolid);
++    info->accel_state->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid);
++    info->accel_state->exa->Solid = FUNC_NAME(RADEONSolid);
++    info->accel_state->exa->DoneSolid = FUNC_NAME(RADEONDoneSolid);
+ 
+-    info->exa->PrepareCopy = FUNC_NAME(RADEONPrepareCopy);
+-    info->exa->Copy = FUNC_NAME(RADEONCopy);
+-    info->exa->DoneCopy = FUNC_NAME(RADEONDoneCopy);
++    info->accel_state->exa->PrepareCopy = FUNC_NAME(RADEONPrepareCopy);
++    info->accel_state->exa->Copy = FUNC_NAME(RADEONCopy);
++    info->accel_state->exa->DoneCopy = FUNC_NAME(RADEONDoneCopy);
+ 
+-    info->exa->MarkSync = FUNC_NAME(RADEONMarkSync);
+-    info->exa->WaitMarker = FUNC_NAME(RADEONSync);
+-    info->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
+-    info->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
++    info->accel_state->exa->MarkSync = FUNC_NAME(RADEONMarkSync);
++    info->accel_state->exa->WaitMarker = FUNC_NAME(RADEONSync);
++    info->accel_state->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
++    info->accel_state->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
+ 
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+-    info->exa->PrepareAccess = RADEONPrepareAccess;
+-    info->exa->FinishAccess = RADEONFinishAccess;
++    info->accel_state->exa->PrepareAccess = RADEONPrepareAccess;
++    info->accel_state->exa->FinishAccess = RADEONFinishAccess;
+ #endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
+ 
+-    info->exa->flags = EXA_OFFSCREEN_PIXMAPS;
+-    info->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
+-    info->exa->pixmapPitchAlign = 64;
++    info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
++    info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
++    info->accel_state->exa->pixmapPitchAlign = 64;
+ 
+ #ifdef RENDER
+     if (info->RenderAccel) {
+@@ -565,11 +565,11 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ 		) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
+ 			       "enabled for R300/R400/R500 type cards.\n");
+-		info->exa->CheckComposite = R300CheckComposite;
+-		info->exa->PrepareComposite =
++		info->accel_state->exa->CheckComposite = R300CheckComposite;
++		info->accel_state->exa->PrepareComposite =
+ 		    FUNC_NAME(R300PrepareComposite);
+-		info->exa->Composite = FUNC_NAME(RadeonComposite);
+-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite);
++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
+ 	    } else
+ 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA Composite requires CP on R5xx/IGP\n");
+ 	} else if ((info->ChipFamily == CHIP_FAMILY_RV250) ||
+@@ -578,19 +578,19 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ 		   (info->ChipFamily == CHIP_FAMILY_R200)) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
+ 			       "enabled for R200 type cards.\n");
+-		info->exa->CheckComposite = R200CheckComposite;
+-		info->exa->PrepareComposite =
++		info->accel_state->exa->CheckComposite = R200CheckComposite;
++		info->accel_state->exa->PrepareComposite =
+ 		    FUNC_NAME(R200PrepareComposite);
+-		info->exa->Composite = FUNC_NAME(RadeonComposite);
+-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite);
++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
+ 	} else {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
+ 			       "enabled for R100 type cards.\n");
+-		info->exa->CheckComposite = R100CheckComposite;
+-		info->exa->PrepareComposite =
++		info->accel_state->exa->CheckComposite = R100CheckComposite;
++		info->accel_state->exa->PrepareComposite =
+ 		    FUNC_NAME(R100PrepareComposite);
+-		info->exa->Composite = FUNC_NAME(RadeonComposite);
+-		info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
++		info->accel_state->exa->Composite = FUNC_NAME(RadeonComposite);
++		info->accel_state->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
+ 	}
+     }
+ #endif
+@@ -598,17 +598,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+ #if EXA_VERSION_MAJOR > 2 || (EXA_VERSION_MAJOR == 2 && EXA_VERSION_MINOR >= 3)
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting EXA maxPitchBytes\n");
+ 
+-    info->exa->maxPitchBytes = 16320;
+-    info->exa->maxX = 8192;
++    info->accel_state->exa->maxPitchBytes = 16320;
++    info->accel_state->exa->maxX = 8192;
+ #else
+-    info->exa->maxX = 16320 / 4;
++    info->accel_state->exa->maxX = 16320 / 4;
+ #endif
+-    info->exa->maxY = 8192;
++    info->accel_state->exa->maxY = 8192;
+ 
+     RADEONEngineInit(pScrn);
+ 
+-    if (!exaDriverInit(pScreen, info->exa)) {
+-	xfree(info->exa);
++    if (!exaDriverInit(pScreen, info->accel_state->exa)) {
++	xfree(info->accel_state->exa);
+ 	return FALSE;
+     }
+     exaMarkSync(pScreen);
+diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
+index 4736e4f..97199ae 100644
+--- a/src/radeon_exa_render.c
++++ b/src/radeon_exa_render.c
+@@ -56,15 +56,6 @@
+ 
+ /* Only include the following (generic) bits once. */
+ #ifdef ONLY_ONCE
+-static Bool is_transform[2];
+-static PictTransform *transform[2];
+-static Bool has_mask;
+-/* Whether we are tiling horizontally and vertically */
+-static Bool need_src_tile_x;
+-static Bool need_src_tile_y;
+-/* Size of tiles ... set to 65536x65536 if not tiling in that direction */
+-static Bool src_tile_width;
+-static Bool src_tile_height;
+ 
+ struct blendinfo {
+     Bool dst_alpha;
+@@ -287,8 +278,10 @@ static Bool RADEONSetupSourceTile(PicturePtr pPict,
+ 				  Bool canTile1d,
+ 				  Bool needMatchingPitch)
+ {
+-    need_src_tile_x = need_src_tile_y = FALSE;
+-    src_tile_width = src_tile_height = 65536; /* "infinite" */
++    RINFO_FROM_SCREEN(pPix->drawable.pScreen);
++
++    info->accel_state->need_src_tile_x = info->accel_state->need_src_tile_y = FALSE;
++    info->accel_state->src_tile_width = info->accel_state->src_tile_height = 65536; /* "infinite" */
+ 	    
+     if (pPict->repeat) {
+ 	Bool badPitch = needMatchingPitch && !RADEONPitchMatches(pPix);
+@@ -301,17 +294,19 @@ static Bool RADEONSetupSourceTile(PicturePtr pPict,
+ 		RADEON_FALLBACK(("Width %d and pitch %u not compatible for repeat\n",
+ 				 w, (unsigned)exaGetPixmapPitch(pPix)));
+ 	} else {
+-	    need_src_tile_x = (w & (w - 1)) != 0 || badPitch;
+-	    need_src_tile_y = (h & (h - 1)) != 0;
++	    info->accel_state->need_src_tile_x = (w & (w - 1)) != 0 || badPitch;
++	    info->accel_state->need_src_tile_y = (h & (h - 1)) != 0;
+ 	    
+ 	    if (!canTile1d)
+-		need_src_tile_x = need_src_tile_y = need_src_tile_x || need_src_tile_y;
++		info->accel_state->need_src_tile_x =
++		    info->accel_state->need_src_tile_y =
++		    info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y;
+ 	}
+ 
+-	if (need_src_tile_x)
+-	  src_tile_width = w;
+-	if (need_src_tile_y)
+-	  src_tile_height = h;
++	if (info->accel_state->need_src_tile_x)
++	    info->accel_state->src_tile_width = w;
++	if (info->accel_state->need_src_tile_y)
++	    info->accel_state->src_tile_height = h;
+     }
+ 
+     return TRUE;
+@@ -357,7 +352,8 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+     uint32_t txfilter, txformat, txoffset, txpitch;
+     int w = pPict->pDrawable->width;
+     int h = pPict->pDrawable->height;
+-    Bool repeat = pPict->repeat && !(unit == 0 && (need_src_tile_x || need_src_tile_y));
++    Bool repeat = pPict->repeat &&
++	!(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y));
+     int i;
+     ACCEL_PREAMBLE();
+ 
+@@ -389,8 +385,8 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+ 	txformat |= RADEON_TXFORMAT_NON_POWER2;
+     txformat |= unit << 24; /* RADEON_TXFORMAT_ST_ROUTE_STQX */
+ 
+-    info->texW[unit] = 1;
+-    info->texH[unit] = 1;
++    info->accel_state->texW[unit] = 1;
++    info->accel_state->texH[unit] = 1;
+ 
+     switch (pPict->filter) {
+     case PictFilterNearest:
+@@ -427,10 +423,10 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+     FINISH_ACCEL();
+ 
+     if (pPict->transform != 0) {
+-	is_transform[unit] = TRUE;
+-	transform[unit] = pPict->transform;
++	info->accel_state->is_transform[unit] = TRUE;
++	info->accel_state->transform[unit] = pPict->transform;
+     } else {
+-	is_transform[unit] = FALSE;
++	info->accel_state->is_transform[unit] = FALSE;
+     }
+ 
+     return TRUE;
+@@ -531,16 +527,16 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
+ 
+     TRACE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!RADEONGetDestFormat(pDstPicture, &dst_format))
+ 	return FALSE;
+ 
+     if (pMask)
+-	has_mask = TRUE;
++	info->accel_state->has_mask = TRUE;
+     else
+-	has_mask = FALSE;
++	info->accel_state->has_mask = FALSE;
+ 
+     pixel_shift = pDst->drawable.bitsPerPixel >> 4;
+ 
+@@ -569,7 +565,7 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
+ 	    return FALSE;
+ 	pp_cntl |= RADEON_TEX_1_ENABLE;
+     } else {
+-	is_transform[1] = FALSE;
++	info->accel_state->is_transform[1] = FALSE;
+     }
+ 
+     RADEON_SWITCH_TO_3D();
+@@ -670,7 +666,8 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+     uint32_t txfilter, txformat, txoffset, txpitch;
+     int w = pPict->pDrawable->width;
+     int h = pPict->pDrawable->height;
+-    Bool repeat = pPict->repeat && !(unit == 0 && (need_src_tile_x || need_src_tile_y));
++    Bool repeat = pPict->repeat &&
++	!(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y));
+     int i;
+     ACCEL_PREAMBLE();
+ 
+@@ -702,8 +699,8 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+ 	txformat |= R200_TXFORMAT_NON_POWER2;
+     txformat |= unit << R200_TXFORMAT_ST_ROUTE_SHIFT;
+ 
+-    info->texW[unit] = w;
+-    info->texH[unit] = h;
++    info->accel_state->texW[unit] = w;
++    info->accel_state->texH[unit] = h;
+ 
+     switch (pPict->filter) {
+     case PictFilterNearest:
+@@ -742,10 +739,10 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+     FINISH_ACCEL();
+ 
+     if (pPict->transform != 0) {
+-	is_transform[unit] = TRUE;
+-	transform[unit] = pPict->transform;
++	info->accel_state->is_transform[unit] = TRUE;
++	info->accel_state->transform[unit] = pPict->transform;
+     } else {
+-	is_transform[unit] = FALSE;
++	info->accel_state->is_transform[unit] = FALSE;
+     }
+ 
+     return TRUE;
+@@ -830,16 +827,16 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 
+     TRACE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!RADEONGetDestFormat(pDstPicture, &dst_format))
+ 	return FALSE;
+ 
+     if (pMask)
+-	has_mask = TRUE;
++	info->accel_state->has_mask = TRUE;
+     else
+-	has_mask = FALSE;
++	info->accel_state->has_mask = FALSE;
+ 
+     pixel_shift = pDst->drawable.bitsPerPixel >> 4;
+ 
+@@ -866,7 +863,7 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	    return FALSE;
+ 	pp_cntl |= RADEON_TEX_1_ENABLE;
+     } else {
+-	is_transform[1] = FALSE;
++	info->accel_state->is_transform[1] = FALSE;
+     }
+ 
+     RADEON_SWITCH_TO_3D();
+@@ -1045,15 +1042,15 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+      */
+     txformat0 |= R300_TXPITCH_EN;
+ 
+-    info->texW[unit] = w;
+-    info->texH[unit] = h;
++    info->accel_state->texW[unit] = w;
++    info->accel_state->texH[unit] = h;
+ 
+-    if (pPict->repeat && !(unit == 0 && need_src_tile_x))
++    if (pPict->repeat && !(unit == 0 && info->accel_state->need_src_tile_x))
+       txfilter = R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP);
+     else
+       txfilter = R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_GL);
+ 
+-    if (pPict->repeat && !(unit == 0 && need_src_tile_y))
++    if (pPict->repeat && !(unit == 0 && info->accel_state->need_src_tile_y))
+       txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP);
+     else
+       txfilter |= R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_GL);
+@@ -1083,10 +1080,10 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+     FINISH_ACCEL();
+ 
+     if (pPict->transform != 0) {
+-	is_transform[unit] = TRUE;
+-	transform[unit] = pPict->transform;
++	info->accel_state->is_transform[unit] = TRUE;
++	info->accel_state->transform[unit] = pPict->transform;
+     } else {
+-	is_transform[unit] = FALSE;
++	info->accel_state->is_transform[unit] = FALSE;
+     }
+ 
+     return TRUE;
+@@ -1191,16 +1188,16 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 
+     TRACE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!R300GetDestFormat(pDstPicture, &dst_format))
+ 	return FALSE;
+ 
+     if (pMask)
+-	has_mask = TRUE;
++	info->accel_state->has_mask = TRUE;
+     else
+-	has_mask = FALSE;
++	info->accel_state->has_mask = FALSE;
+ 
+     pixel_shift = pDst->drawable.bitsPerPixel >> 4;
+ 
+@@ -1230,13 +1227,13 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	    return FALSE;
+ 	txenable |= R300_TEX_1_ENABLE;
+     } else {
+-	is_transform[1] = FALSE;
++	info->accel_state->is_transform[1] = FALSE;
+     }
+ 
+     RADEON_SWITCH_TO_3D();
+ 
+     /* setup the VAP */
+-    if (info->has_tcl) {
++    if (info->accel_state->has_tcl) {
+ 	if (pMask)
+ 	    BEGIN_ACCEL(8);
+ 	else
+@@ -1296,7 +1293,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+      * - Xv
+      * Here we select the offset of the vertex program we want to use
+      */
+-    if (info->has_tcl) {
++    if (info->accel_state->has_tcl) {
+ 	if (pMask) {
+ 	    OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0,
+ 			  ((0 << R300_PVS_FIRST_INST_SHIFT) |
+@@ -1419,7 +1416,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 
+ 
+ 	/* setup the rasterizer, load FS */
+-	BEGIN_ACCEL(9);
++	BEGIN_ACCEL(10);
+ 	if (pMask) {
+ 	    /* 4 components: 2 for tex0, 2 for tex1 */
+ 	    OUT_ACCEL_REG(R300_RS_COUNT,
+@@ -1461,6 +1458,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 			   R300_RGBA_OUT));
+ 	}
+ 
++	OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */
+ 	/* shader output swizzling */
+ 	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt);
+ 
+@@ -1474,7 +1472,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	 * R300_ALU_RGB_OMASK - output components to write
+ 	 * R300_ALU_RGB_TARGET_A - render target
+ 	 */
+-	OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR_0,
++	OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR(0),
+ 		      (R300_ALU_RGB_ADDR0(0) |
+ 		       R300_ALU_RGB_ADDR1(1) |
+ 		       R300_ALU_RGB_ADDR2(0) |
+@@ -1486,7 +1484,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	/* RGB inst
+ 	 * ALU operation
+ 	 */
+-	OUT_ACCEL_REG(R300_US_ALU_RGB_INST_0,
++	OUT_ACCEL_REG(R300_US_ALU_RGB_INST(0),
+ 		      (R300_ALU_RGB_SEL_A(src_color) |
+ 		       R300_ALU_RGB_MOD_A(R300_ALU_RGB_MOD_NOP) |
+ 		       R300_ALU_RGB_SEL_B(mask_color) |
+@@ -1503,7 +1501,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	 * R300_ALU_ALPHA_OMASK - output components to write
+ 	 * R300_ALU_ALPHA_TARGET_A - render target
+ 	 */
+-	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0,
++	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR(0),
+ 		      (R300_ALU_ALPHA_ADDR0(0) |
+ 		       R300_ALU_ALPHA_ADDR1(1) |
+ 		       R300_ALU_ALPHA_ADDR2(0) |
+@@ -1514,7 +1512,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	/* Alpha inst
+ 	 * ALU operation
+ 	 */
+-	OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST_0,
++	OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST(0),
+ 		      (R300_ALU_ALPHA_SEL_A(src_alpha) |
+ 		       R300_ALU_ALPHA_MOD_A(R300_ALU_ALPHA_MOD_NOP) |
+ 		       R300_ALU_ALPHA_SEL_B(mask_alpha) |
+@@ -1633,7 +1631,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	    break;
+ 	}
+ 
+-	BEGIN_ACCEL(6);
++	BEGIN_ACCEL(7);
+ 	if (pMask) {
+ 	    /* 4 components: 2 for tex0, 2 for tex1 */
+ 	    OUT_ACCEL_REG(R300_RS_COUNT,
+@@ -1662,12 +1660,13 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	    OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0);
+ 	}
+ 
++	OUT_ACCEL_REG(R300_US_PIXSIZE, 1); /* highest temp used */
+ 	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt);
+ 	FINISH_ACCEL();
+ 
+ 	if (pMask) {
+ 	    BEGIN_ACCEL(19);
+-	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, 0);
++	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0));
+ 	    /* tex inst for src texture */
+ 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
+ 						   R500_INST_RGB_WMASK_R |
+@@ -1739,7 +1738,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
+ 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
+ 	} else {
+ 	    BEGIN_ACCEL(13);
+-	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, 0);
++	    OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0));
+ 	    /* tex inst for src texture */
+ 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
+ 						   R500_INST_TEX_SEM_WAIT |
+@@ -1936,20 +1935,20 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst,
+     maskBottomRight.x = IntToxFixed(maskX + w);
+     maskBottomRight.y = IntToxFixed(maskY + h);
+ 
+-    if (is_transform[0]) {
+-	transformPoint(transform[0], &srcTopLeft);
+-	transformPoint(transform[0], &srcTopRight);
+-	transformPoint(transform[0], &srcBottomLeft);
+-	transformPoint(transform[0], &srcBottomRight);
++    if (info->accel_state->is_transform[0]) {
++	transformPoint(info->accel_state->transform[0], &srcTopLeft);
++	transformPoint(info->accel_state->transform[0], &srcTopRight);
++	transformPoint(info->accel_state->transform[0], &srcBottomLeft);
++	transformPoint(info->accel_state->transform[0], &srcBottomRight);
+     }
+-    if (is_transform[1]) {
+-	transformPoint(transform[1], &maskTopLeft);
+-	transformPoint(transform[1], &maskTopRight);
+-	transformPoint(transform[1], &maskBottomLeft);
+-	transformPoint(transform[1], &maskBottomRight);
++    if (info->accel_state->is_transform[1]) {
++	transformPoint(info->accel_state->transform[1], &maskTopLeft);
++	transformPoint(info->accel_state->transform[1], &maskTopRight);
++	transformPoint(info->accel_state->transform[1], &maskBottomLeft);
++	transformPoint(info->accel_state->transform[1], &maskBottomRight);
+     }
+ 
+-    if (has_mask)
++    if (info->accel_state->has_mask)
+ 	vtx_count = VTX_COUNT_MASK;
+     else
+ 	vtx_count = VTX_COUNT;
+@@ -1962,21 +1961,21 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst,
+ 
+ #ifdef ACCEL_CP
+     if (info->ChipFamily < CHIP_FAMILY_R200) {
+-	BEGIN_RING(4 * vtx_count + 3);
++	BEGIN_RING(3 * vtx_count + 3);
+ 	OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_3D_DRAW_IMMD,
+-			    4 * vtx_count + 1));
+-	if (has_mask)
++			    3 * vtx_count + 1));
++	if (info->accel_state->has_mask)
+ 	    OUT_RING(RADEON_CP_VC_FRMT_XY |
+ 		     RADEON_CP_VC_FRMT_ST0 |
+ 		     RADEON_CP_VC_FRMT_ST1);
+ 	else
+ 	    OUT_RING(RADEON_CP_VC_FRMT_XY |
+ 		     RADEON_CP_VC_FRMT_ST0);
+-	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN |
++	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST |
+ 		 RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ 		 RADEON_CP_VC_CNTL_MAOS_ENABLE |
+ 		 RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE |
+-		 (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
++		 (3 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+     } else {
+ 	if (IS_R300_3D || IS_R500_3D)
+ 	    BEGIN_RING(4 * vtx_count + 4);
+@@ -1985,7 +1984,7 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst,
+ 
+ 	OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
+ 			    4 * vtx_count));
+-	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN |
++	OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST |
+ 		 RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ 		 (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+     }
+@@ -1993,43 +1992,49 @@ static void FUNC_NAME(RadeonCompositeTile)(PixmapPtr pDst,
+ #else /* ACCEL_CP */
+     if (IS_R300_3D || IS_R500_3D)
+ 	BEGIN_ACCEL(2 + vtx_count * 4);
++    else if (info->ChipFamily < CHIP_FAMILY_R200)
++	BEGIN_ACCEL(1 + vtx_count * 3);
+     else
+ 	BEGIN_ACCEL(1 + vtx_count * 4);
+ 
+-    if (info->ChipFamily < CHIP_FAMILY_R200) {
+-	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_FAN |
++    if (info->ChipFamily < CHIP_FAMILY_R200)
++	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST |
+ 					  RADEON_VF_PRIM_WALK_DATA |
+ 					  RADEON_VF_RADEON_MODE |
+-					  4 << RADEON_VF_NUM_VERTICES_SHIFT));
+-    } else {
++					  (3 << RADEON_VF_NUM_VERTICES_SHIFT)));
++    else
+ 	OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST |
+ 					  RADEON_VF_PRIM_WALK_DATA |
+-					  4 << RADEON_VF_NUM_VERTICES_SHIFT));
+-    }
++					  (4 << RADEON_VF_NUM_VERTICES_SHIFT)));
++
+ #endif
+ 
+-    if (has_mask) {
+-	VTX_OUT_MASK((float)dstX,                                      (float)dstY,
+-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0],
+-		xFixedToFloat(maskTopLeft.x) / info->texW[1],     xFixedToFloat(maskTopLeft.y) / info->texH[1]);
++    if (info->accel_state->has_mask) {
++	if (info->ChipFamily >= CHIP_FAMILY_R200) {
++	    VTX_OUT_MASK((float)dstX,                                      (float)dstY,
++			 xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0],
++			 xFixedToFloat(maskTopLeft.x) / info->accel_state->texW[1],     xFixedToFloat(maskTopLeft.y) / info->accel_state->texH[1]);
++	}
+ 	VTX_OUT_MASK((float)dstX,                                      (float)(dstY + h),
+-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0],
+-		xFixedToFloat(maskBottomLeft.x) / info->texW[1],  xFixedToFloat(maskBottomLeft.y) / info->texH[1]);
++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0],
++		xFixedToFloat(maskBottomLeft.x) / info->accel_state->texW[1],  xFixedToFloat(maskBottomLeft.y) / info->accel_state->texH[1]);
+ 	VTX_OUT_MASK((float)(dstX + w),                                (float)(dstY + h),
+-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0],
+-		xFixedToFloat(maskBottomRight.x) / info->texW[1], xFixedToFloat(maskBottomRight.y) / info->texH[1]);
++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0],
++		xFixedToFloat(maskBottomRight.x) / info->accel_state->texW[1], xFixedToFloat(maskBottomRight.y) / info->accel_state->texH[1]);
+ 	VTX_OUT_MASK((float)(dstX + w),                                (float)dstY,
+-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0],
+-		xFixedToFloat(maskTopRight.x) / info->texW[1],    xFixedToFloat(maskTopRight.y) / info->texH[1]);
++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0],
++		xFixedToFloat(maskTopRight.x) / info->accel_state->texW[1],    xFixedToFloat(maskTopRight.y) / info->accel_state->texH[1]);
+     } else {
+-	VTX_OUT((float)dstX,                                      (float)dstY,
+-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0]);
++	if (info->ChipFamily >= CHIP_FAMILY_R200) {
++	    VTX_OUT((float)dstX,                                      (float)dstY,
++		    xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0]);
++	}
+ 	VTX_OUT((float)dstX,                                      (float)(dstY + h),
+-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0]);
++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0]);
+ 	VTX_OUT((float)(dstX + w),                                (float)(dstY + h),
+-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0]);
++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0]);
+ 	VTX_OUT((float)(dstX + w),                                (float)dstY,
+-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0]);
++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0]);
+     }
+ 
+     if (IS_R300_3D || IS_R500_3D)
+@@ -2055,8 +2060,9 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst,
+ {
+     int tileSrcY, tileMaskY, tileDstY;
+     int remainingHeight;
+-    
+-    if (!need_src_tile_x && !need_src_tile_y) {
++    RINFO_FROM_SCREEN(pDst->drawable.pScreen);
++
++    if (!info->accel_state->need_src_tile_x && !info->accel_state->need_src_tile_y) {
+ 	FUNC_NAME(RadeonCompositeTile)(pDst,
+ 				       srcX, srcY,
+ 				       maskX, maskY,
+@@ -2067,7 +2073,7 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst,
+ 
+     /* Tiling logic borrowed from exaFillRegionTiled */
+ 
+-    modulus(srcY, src_tile_height, tileSrcY);
++    modulus(srcY, info->accel_state->src_tile_height, tileSrcY);
+     tileMaskY = maskY;
+     tileDstY = dstY;
+ 
+@@ -2075,18 +2081,18 @@ static void FUNC_NAME(RadeonComposite)(PixmapPtr pDst,
+     while (remainingHeight > 0) {
+ 	int remainingWidth = width;
+ 	int tileSrcX, tileMaskX, tileDstX;
+-	int h = src_tile_height - tileSrcY;
++	int h = info->accel_state->src_tile_height - tileSrcY;
+ 	
+ 	if (h > remainingHeight)
+ 	    h = remainingHeight;
+ 	remainingHeight -= h;
+ 
+-	modulus(srcX, src_tile_width, tileSrcX);
++	modulus(srcX, info->accel_state->src_tile_width, tileSrcX);
+ 	tileMaskX = maskX;
+ 	tileDstX = dstX;
+ 	
+ 	while (remainingWidth > 0) {
+-	    int w = src_tile_width - tileSrcX;
++	    int w = info->accel_state->src_tile_width - tileSrcX;
+ 	    if (w > remainingWidth)
+ 		w = remainingWidth;
+ 	    remainingWidth -= w;
+diff --git a/src/radeon_legacy_memory.c b/src/radeon_legacy_memory.c
+new file mode 100644
+index 0000000..2a9ee94
+--- /dev/null
++++ b/src/radeon_legacy_memory.c
+@@ -0,0 +1,117 @@
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++/* Driver data structures */
++#include "radeon.h"
++
++/* Allocates memory, either by resizing the allocation pointed to by mem_struct,
++ * or by freeing mem_struct (if non-NULL) and allocating a new space.  The size
++ * is measured in bytes, and the offset from the beginning of card space is
++ * returned.
++ */
++uint32_t
++radeon_legacy_allocate_memory(ScrnInfoPtr pScrn,
++		       void **mem_struct,
++		       int size,
++		       int align)
++{
++    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
++    RADEONInfoPtr info = RADEONPTR(pScrn);
++    uint32_t offset = 0;
++
++#ifdef USE_EXA
++    if (info->useEXA) {
++	ExaOffscreenArea *area = *mem_struct;
++
++	if (area != NULL) {
++	    if (area->size >= size)
++		return area->offset;
++
++	    exaOffscreenFree(pScreen, area);
++	}
++
++	area = exaOffscreenAlloc(pScreen, size, align, TRUE,
++				 NULL, NULL);
++
++	*mem_struct = area;
++	if (area == NULL)
++	    return 0;
++	offset = area->offset;
++    }
++#endif /* USE_EXA */
++#ifdef USE_XAA
++    if (!info->useEXA) {
++	FBLinearPtr linear = *mem_struct;
++	int cpp = info->CurrentLayout.bitsPerPixel / 8;
++
++	/* XAA allocates in units of pixels at the screen bpp, so adjust size
++	 * appropriately.
++	 */
++	size = (size + cpp - 1) / cpp;
++	align = (align + cpp - 1) / cpp;
++
++	if (linear) {
++	    if(linear->size >= size)
++		return linear->offset * cpp;
++
++	    if(xf86ResizeOffscreenLinear(linear, size))
++		return linear->offset * cpp;
++
++	    xf86FreeOffscreenLinear(linear);
++	}
++
++	linear = xf86AllocateOffscreenLinear(pScreen, size, align,
++					     NULL, NULL, NULL);
++	*mem_struct = linear;
++
++	if (!linear) {
++	    int max_size;
++
++	    xf86QueryLargestOffscreenLinear(pScreen, &max_size, align,
++					    PRIORITY_EXTREME);
++
++	    if (max_size < size)
++		return 0;
++
++	    xf86PurgeUnlockedOffscreenAreas(pScreen);
++	    linear = xf86AllocateOffscreenLinear(pScreen, size, align,
++						 NULL, NULL, NULL);
++	    *mem_struct = linear;
++	    if (!linear)
++		return 0;
++	}
++	offset = linear->offset * cpp;
++    }
++#endif /* USE_XAA */
++
++    return offset;
++}
++
++void
++radeon_legacy_free_memory(ScrnInfoPtr pScrn,
++		   void *mem_struct)
++{
++    ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
++    RADEONInfoPtr info = RADEONPTR(pScrn);
++
++#ifdef USE_EXA
++    if (info->useEXA) {
++	ExaOffscreenArea *area = mem_struct;
++
++	if (area != NULL)
++	    exaOffscreenFree(pScreen, area);
++	area = NULL;
++    }
++#endif /* USE_EXA */
++#ifdef USE_XAA
++    if (!info->useEXA) {
++	FBLinearPtr linear = mem_struct;
++
++	if (linear != NULL)
++	    xf86FreeOffscreenLinear(linear);
++	linear = NULL;
++    }
++#endif /* USE_XAA */
++}
+diff --git a/src/radeon_macros.h b/src/radeon_macros.h
+index afe442e..f19bc3e 100644
+--- a/src/radeon_macros.h
++++ b/src/radeon_macros.h
+@@ -51,32 +51,6 @@
+ 
+ #include "compiler.h"
+ 
+-#if HAVE_BYTESWAP_H
+-#include <byteswap.h>
+-#elif defined(USE_SYS_ENDIAN_H)
+-#include <sys/endian.h>
+-#else
+-#define	bswap_16(value)  \
+- 	((((value) & 0xff) << 8) | ((value) >> 8))
+-
+-#define	bswap_32(value)	\
+- 	(((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \
+- 	(uint32_t)bswap_16((uint16_t)((value) >> 16)))
+- 
+-#define	bswap_64(value)	\
+- 	(((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \
+- 	    << 32) | \
+- 	(uint64_t)bswap_32((uint32_t)((value) >> 32)))
+-#endif
+-
+-#if X_BYTE_ORDER == X_BIG_ENDIAN
+-#define le32_to_cpu(x) bswap_32(x)
+-#define le16_to_cpu(x) bswap_16(x)
+-#else
+-#define le32_to_cpu(x) (x)
+-#define le16_to_cpu(x) (x)
+-#endif
+-
+ #define RADEON_BIOS8(v)  (info->VBIOS[v])
+ #define RADEON_BIOS16(v) (info->VBIOS[v] | \
+                           (info->VBIOS[(v) + 1] << 8))
+diff --git a/src/radeon_output.c b/src/radeon_output.c
+index 7b89d66..8c794fb 100644
+--- a/src/radeon_output.c
++++ b/src/radeon_output.c
+@@ -173,9 +173,6 @@ static const uint32_t default_tvdac_adj [CHIP_FAMILY_LAST] =
+ 
+ static void RADEONUpdatePanelSize(xf86OutputPtr output);
+ static void RADEONGetTMDSInfoFromTable(xf86OutputPtr output);
+-#define AVIVO_I2C_DISABLE 0
+-#define AVIVO_I2C_ENABLE 1
+-static Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state);
+ 
+ extern void atombios_output_mode_set(xf86OutputPtr output,
+ 				     DisplayModePtr mode,
+@@ -183,6 +180,8 @@ extern void atombios_output_mode_set(xf86OutputPtr output,
+ extern void atombios_output_dpms(xf86OutputPtr output, int mode);
+ extern RADEONMonitorType atombios_dac_detect(ScrnInfoPtr pScrn, xf86OutputPtr output);
+ extern int atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode);
++extern AtomBiosResult
++atombios_lock_crtc(atomBiosHandlePtr atomBIOS, int crtc, int lock);
+ static void
+ radeon_bios_output_dpms(xf86OutputPtr output, int mode);
+ static void
+@@ -213,88 +212,6 @@ void RADEONPrintPortMap(ScrnInfoPtr pScrn)
+ 
+ }
+ 
+-static xf86MonPtr
+-radeon_do_ddc(xf86OutputPtr output)
+-{
+-    RADEONInfoPtr info = RADEONPTR(output->scrn);
+-    unsigned char *RADEONMMIO = info->MMIO;
+-    uint32_t DDCReg;
+-    xf86MonPtr MonInfo = NULL;
+-    RADEONOutputPrivatePtr radeon_output = output->driver_private;
+-    int i, j;
+-
+-    if (radeon_output->pI2CBus) {
+-	DDCReg = radeon_output->ddc_i2c.mask_clk_reg;
+-
+-	if (IS_AVIVO_VARIANT) {
+-	    AVIVOI2CDoLock(output, AVIVO_I2C_ENABLE);
+-	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+-	    AVIVOI2CDoLock(output, AVIVO_I2C_DISABLE);
+-	} else if ((DDCReg == RADEON_LCD_GPIO_MASK) || (DDCReg == RADEON_MDGPIO_EN_REG)) {
+-	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+-	} else {
+-	    OUTREG(DDCReg, INREG(DDCReg) &
+-		   (uint32_t)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1));
+-
+-	    /* For some old monitors (like Compaq Presario FP500), we need
+-	     * following process to initialize/stop DDC
+-	     */
+-	    OUTREG(DDCReg, INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
+-	    for (j = 0; j < 3; j++) {
+-		OUTREG(DDCReg,
+-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
+-		usleep(13000);
+-
+-		OUTREG(DDCReg,
+-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
+-		for (i = 0; i < 10; i++) {
+-		    usleep(15000);
+-		    if (INREG(DDCReg) & RADEON_GPIO_Y_1)
+-			break;
+-		}
+-		if (i == 10) continue;
+-
+-		usleep(15000);
+-
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
+-		usleep(15000);
+-
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
+-		usleep(15000);
+-		OUTREG(DDCReg,
+-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
+-		usleep(15000);
+-
+-		MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+-
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
+-		usleep(15000);
+-		OUTREG(DDCReg,
+-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_1));
+-		for (i = 0; i < 5; i++) {
+-		    usleep(15000);
+-		    if (INREG(DDCReg) & RADEON_GPIO_Y_1)
+-			break;
+-		}
+-		usleep(15000);
+-		OUTREG(DDCReg,
+-		       INREG(DDCReg) & ~(RADEON_GPIO_EN_0));
+-		usleep(15000);
+-
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_1);
+-		OUTREG(DDCReg, INREG(DDCReg) | RADEON_GPIO_EN_0);
+-		usleep(15000);
+-		if (MonInfo)  break;
+-	    }
+-	    OUTREG(DDCReg, INREG(DDCReg) &
+-		   ~(RADEON_GPIO_EN_0 | RADEON_GPIO_EN_1));
+-	}
+-    }
+-
+-    return MonInfo;
+-}
+-
+ static RADEONMonitorType
+ radeon_ddc_connected(xf86OutputPtr output)
+ {
+@@ -304,8 +221,20 @@ radeon_ddc_connected(xf86OutputPtr output)
+     xf86MonPtr MonInfo = NULL;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+ 
+-    if (radeon_output->pI2CBus)
+-	MonInfo = radeon_do_ddc(output);
++    if (radeon_output->pI2CBus) {
++	/* RV410 RADEON_GPIO_VGA_DDC seems to only work via hw i2c
++	 * We may want to extend this to other cases if the need arises...
++	 */
++	if ((info->ChipFamily == CHIP_FAMILY_RV410) &&
++	    (radeon_output->ddc_i2c.mask_clk_reg == RADEON_GPIO_VGA_DDC) &&
++	    info->IsAtomBios)
++	    MonInfo = radeon_atom_get_edid(output);
++	else {
++	    RADEONI2CDoLock(output, TRUE);
++	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
++	    RADEONI2CDoLock(output, FALSE);
++	}
++    }
+     if (MonInfo) {
+ 	if (!xf86ReturnOptValBool(info->Options, OPTION_IGNORE_EDID, FALSE))
+ 	    xf86OutputSetEDID(output, MonInfo);
+@@ -317,13 +246,14 @@ radeon_ddc_connected(xf86OutputPtr output)
+ 	    MonType = MT_DFP;
+ 	else if (radeon_output->type == OUTPUT_DP)
+ 	    MonType = MT_DFP;
+-	else if (radeon_output->type == OUTPUT_DVI_I && (MonInfo->rawData[0x14] & 0x80)) /* if it's digital and DVI */
++	else if (radeon_output->type == OUTPUT_DVI_I &&
++		 (MonInfo->rawData[0x14] & 0x80)) /* if it's digital and DVI */
+ 	    MonType = MT_DFP;
+ 	else
+ 	    MonType = MT_CRT;
+     } else
+ 	MonType = MT_NONE;
+-    
++
+     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ 	       "Output: %s, Detected Monitor Type: %d\n", output->name, MonType);
+ 
+@@ -537,7 +467,7 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
+ 		if (IS_AVIVO_VARIANT) {
+ 		    /* set to the panel's native mode */
+ 		    adjusted_mode->HDisplay = radeon_output->PanelXRes;
+-		    adjusted_mode->HDisplay = radeon_output->PanelYRes;
++		    adjusted_mode->VDisplay = radeon_output->PanelYRes;
+ 		    adjusted_mode->HTotal = radeon_output->PanelXRes + radeon_output->HBlank;
+ 		    adjusted_mode->HSyncStart = radeon_output->PanelXRes + radeon_output->HOverPlus;
+ 		    adjusted_mode->HSyncEnd = adjusted_mode->HSyncStart + radeon_output->HSyncWidth;
+@@ -580,12 +510,20 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
+ 	}
+     }
+ 
++    if (IS_AVIVO_VARIANT) {
++	/* hw bug */
++	if ((mode->Flags & V_INTERLACE)
++	    && (mode->CrtcVSyncStart < (mode->CrtcVDisplay + 2)))
++	    adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVDisplay + 2;
++    }
++
+     return TRUE;
+ }
+ 
+ static void
+ radeon_mode_prepare(xf86OutputPtr output)
+ {
++    RADEONInfoPtr info = RADEONPTR(output->scrn);
+     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn);
+     int o;
+ 
+@@ -595,9 +533,12 @@ radeon_mode_prepare(xf86OutputPtr output)
+ 	    continue;
+ 	else if (loop_output->crtc) {
+ 	    xf86CrtcPtr other_crtc = loop_output->crtc;
++	    RADEONCrtcPrivatePtr other_radeon_crtc = other_crtc->driver_private;
+ 	    if (other_crtc->enabled) {
+-		radeon_dpms(loop_output, DPMSModeOff);
+ 		radeon_crtc_dpms(other_crtc, DPMSModeOff);
++		if (IS_AVIVO_VARIANT)
++		    atombios_lock_crtc(info->atomBIOS, other_radeon_crtc->crtc_id, 1);
++		radeon_dpms(loop_output, DPMSModeOff);
+ 	    }
+ 	}
+     }
+@@ -625,6 +566,7 @@ radeon_mode_set(xf86OutputPtr output, DisplayModePtr mode,
+ static void
+ radeon_mode_commit(xf86OutputPtr output)
+ {
++    RADEONInfoPtr info = RADEONPTR(output->scrn);
+     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn);
+     int o;
+ 
+@@ -634,9 +576,12 @@ radeon_mode_commit(xf86OutputPtr output)
+ 	    continue;
+ 	else if (loop_output->crtc) {
+ 	    xf86CrtcPtr other_crtc = loop_output->crtc;
++	    RADEONCrtcPrivatePtr other_radeon_crtc = other_crtc->driver_private;
+ 	    if (other_crtc->enabled) {
+-		radeon_dpms(loop_output, DPMSModeOn);		
+ 		radeon_crtc_dpms(other_crtc, DPMSModeOn);
++		if (IS_AVIVO_VARIANT)
++		    atombios_lock_crtc(info->atomBIOS, other_radeon_crtc->crtc_id, 0);
++		radeon_dpms(loop_output, DPMSModeOn);
+ 	    }
+ 	}
+     }
+@@ -1201,8 +1146,7 @@ radeon_create_resources(xf86OutputPtr output)
+ 	}
+     }
+ 
+-    if (IS_DCE3_VARIANT &&
+-	(OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI))) {
++    if (OUTPUT_IS_DVI || (radeon_output->type == OUTPUT_HDMI)) {
+ 	coherent_mode_atom = MAKE_ATOM("coherent_mode");
+ 
+ 	range[0] = 0; /* off */
+@@ -1214,7 +1158,7 @@ radeon_create_resources(xf86OutputPtr output)
+ 		       "RRConfigureOutputProperty error, %d\n", err);
+ 	}
+ 
+-	data = 1; /* use coherent mode by default */
++	data = 0; /* coherent mode off by default */
+ 
+ 	err = RRChangeOutputProperty(output->randr_output, coherent_mode_atom,
+ 				     XA_INTEGER, 32, PropModeReplace, 1, &data,
+@@ -1682,8 +1626,8 @@ Bool AVIVOI2CReset(ScrnInfoPtr pScrn)
+ }
+ #endif
+ 
+-static
+-Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state)
++Bool
++RADEONI2CDoLock(xf86OutputPtr output, int lock_state)
+ {
+     ScrnInfoPtr pScrn = output->scrn;
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+@@ -1692,19 +1636,29 @@ Bool AVIVOI2CDoLock(xf86OutputPtr output, int lock_state)
+     unsigned char *RADEONMMIO = info->MMIO;
+     uint32_t temp;
+ 
++    if (lock_state) {
++	temp = INREG(pRADEONI2CBus->a_clk_reg);
++	temp &= ~(pRADEONI2CBus->a_clk_mask);
++	OUTREG(pRADEONI2CBus->a_clk_reg, temp);
++
++	temp = INREG(pRADEONI2CBus->a_data_reg);
++	temp &= ~(pRADEONI2CBus->a_data_mask);
++	OUTREG(pRADEONI2CBus->a_data_reg, temp);
++    }
++
+     temp = INREG(pRADEONI2CBus->mask_clk_reg);
+-    if (lock_state == AVIVO_I2C_ENABLE)
+-	temp |= (pRADEONI2CBus->put_clk_mask);
++    if (lock_state)
++	temp |= (pRADEONI2CBus->mask_clk_mask);
+     else
+-	temp &= ~(pRADEONI2CBus->put_clk_mask);
++	temp &= ~(pRADEONI2CBus->mask_clk_mask);
+     OUTREG(pRADEONI2CBus->mask_clk_reg, temp);
+     temp = INREG(pRADEONI2CBus->mask_clk_reg);
+ 
+     temp = INREG(pRADEONI2CBus->mask_data_reg);
+-    if (lock_state == AVIVO_I2C_ENABLE)
+-	temp |= (pRADEONI2CBus->put_data_mask);
++    if (lock_state)
++	temp |= (pRADEONI2CBus->mask_data_mask);
+     else
+-	temp &= ~(pRADEONI2CBus->put_data_mask);
++	temp &= ~(pRADEONI2CBus->mask_data_mask);
+     OUTREG(pRADEONI2CBus->mask_data_reg, temp);
+     temp = INREG(pRADEONI2CBus->mask_data_reg);
+ 
+@@ -1786,8 +1740,12 @@ legacy_setup_i2c_bus(int ddc_line)
+ {
+     RADEONI2CBusRec i2c;
+ 
+-    i2c.mask_clk_mask = RADEON_GPIO_EN_1 | RADEON_GPIO_Y_1;
+-    i2c.mask_data_mask =  RADEON_GPIO_EN_0 | RADEON_GPIO_Y_0;
++    i2c.hw_line = 0;
++    i2c.hw_capable = FALSE;
++    i2c.mask_clk_mask = RADEON_GPIO_EN_1;
++    i2c.mask_data_mask = RADEON_GPIO_EN_0;
++    i2c.a_clk_mask = RADEON_GPIO_A_1;
++    i2c.a_data_mask = RADEON_GPIO_A_0;
+     i2c.put_clk_mask = RADEON_GPIO_EN_1;
+     i2c.put_data_mask = RADEON_GPIO_EN_0;
+     i2c.get_clk_mask = RADEON_GPIO_Y_1;
+@@ -1796,6 +1754,8 @@ legacy_setup_i2c_bus(int ddc_line)
+ 	(ddc_line == RADEON_MDGPIO_EN_REG)) {
+ 	i2c.mask_clk_reg = ddc_line;
+ 	i2c.mask_data_reg = ddc_line;
++	i2c.a_clk_reg = ddc_line;
++	i2c.a_data_reg = ddc_line;
+ 	i2c.put_clk_reg = ddc_line;
+ 	i2c.put_data_reg = ddc_line;
+ 	i2c.get_clk_reg = ddc_line + 4;
+@@ -1803,6 +1763,8 @@ legacy_setup_i2c_bus(int ddc_line)
+     } else {
+ 	i2c.mask_clk_reg = ddc_line;
+ 	i2c.mask_data_reg = ddc_line;
++	i2c.a_clk_reg = ddc_line;
++	i2c.a_data_reg = ddc_line;
+ 	i2c.put_clk_reg = ddc_line;
+ 	i2c.put_data_reg = ddc_line;
+ 	i2c.get_clk_reg = ddc_line;
+@@ -1822,6 +1784,8 @@ atom_setup_i2c_bus(int ddc_line)
+ {
+     RADEONI2CBusRec i2c;
+ 
++    i2c.hw_line = 0;
++    i2c.hw_capable = FALSE;
+     if (ddc_line == AVIVO_GPIO_0) {
+ 	i2c.put_clk_mask = (1 << 19);
+ 	i2c.put_data_mask = (1 << 18);
+@@ -1829,6 +1793,8 @@ atom_setup_i2c_bus(int ddc_line)
+ 	i2c.get_data_mask = (1 << 18);
+ 	i2c.mask_clk_mask = (1 << 19);
+ 	i2c.mask_data_mask = (1 << 18);
++	i2c.a_clk_mask = (1 << 19);
++	i2c.a_data_mask = (1 << 18);
+     } else {
+ 	i2c.put_clk_mask = (1 << 0);
+ 	i2c.put_data_mask = (1 << 8);
+@@ -1836,9 +1802,13 @@ atom_setup_i2c_bus(int ddc_line)
+ 	i2c.get_data_mask = (1 << 8);
+ 	i2c.mask_clk_mask = (1 << 0);
+ 	i2c.mask_data_mask = (1 << 8);
++	i2c.a_clk_mask = (1 << 0);
++	i2c.a_data_mask = (1 << 8);
+     }
+     i2c.mask_clk_reg = ddc_line;
+     i2c.mask_data_reg = ddc_line;
++    i2c.a_clk_reg = ddc_line + 0x4;
++    i2c.a_data_reg = ddc_line + 0x4;
+     i2c.put_clk_reg = ddc_line + 0x8;
+     i2c.put_data_reg = ddc_line + 0x8;
+     i2c.get_clk_reg = ddc_line + 0xc;
+@@ -2301,13 +2271,13 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn)
+ 	info->BiosConnector[0].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_DVI_DDC);
+ 	info->BiosConnector[0].DACType = DAC_NONE;
+ 	info->BiosConnector[0].TMDSType = TMDS_NONE;
+-	info->BiosConnector[0].ConnectorType = CONNECTOR_VGA;
++	info->BiosConnector[0].ConnectorType = CONNECTOR_LVDS;
+ 	info->BiosConnector[0].valid = TRUE;
+ 
+ 	info->BiosConnector[1].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC);
+ 	info->BiosConnector[1].DACType = DAC_PRIMARY;
+-	info->BiosConnector[1].TMDSType = TMDS_INT;
+-	info->BiosConnector[1].ConnectorType = CONNECTOR_DVI_I;
++	info->BiosConnector[1].TMDSType = TMDS_NONE;
++	info->BiosConnector[1].ConnectorType = CONNECTOR_VGA;
+ 	info->BiosConnector[1].valid = TRUE;
+ 
+ 	info->BiosConnector[2].ConnectorType = CONNECTOR_STV;
+@@ -2677,7 +2647,6 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
+ {
+     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+     RADEONInfoPtr info       = RADEONPTR(pScrn);
+-    RADEONEntPtr pRADEONEnt  = RADEONEntPriv(pScrn);
+     xf86OutputPtr output;
+     char *optstr;
+     int i = 0;
+@@ -2742,13 +2711,6 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
+ 	    RADEONSetupGenericConnectors(pScrn);
+     }
+ 
+-    if (!pRADEONEnt->HasCRTC2) {
+-	for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) {
+-	    if (info->BiosConnector[i].ConnectorType == CONNECTOR_VGA)
+-		info->BiosConnector[i].DACType = DAC_PRIMARY;
+-	}
+-    }
+-
+     /* parse connector table option */
+     optstr = (char *)xf86GetOptValString(info->Options, OPTION_CONNECTORTABLE);
+ 
+diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h
+index 39adb5e..ff1801f 100644
+--- a/src/radeon_pci_chipset_gen.h
++++ b/src/radeon_pci_chipset_gen.h
+@@ -1,6 +1,7 @@
+ /* This file is autogenerated please do not edit */
+ PciChipsets RADEONPciChipsets[] = {
+  { PCI_CHIP_RV380_3150, PCI_CHIP_RV380_3150, RES_SHARED_VGA },
++ { PCI_CHIP_RV380_3151, PCI_CHIP_RV380_3151, RES_SHARED_VGA },
+  { PCI_CHIP_RV380_3152, PCI_CHIP_RV380_3152, RES_SHARED_VGA },
+  { PCI_CHIP_RV380_3154, PCI_CHIP_RV380_3154, RES_SHARED_VGA },
+  { PCI_CHIP_RV380_3E50, PCI_CHIP_RV380_3E50, RES_SHARED_VGA },
+@@ -250,6 +251,9 @@ PciChipsets RADEONPciChipsets[] = {
+  { PCI_CHIP_R600_940A, PCI_CHIP_R600_940A, RES_SHARED_VGA },
+  { PCI_CHIP_R600_940B, PCI_CHIP_R600_940B, RES_SHARED_VGA },
+  { PCI_CHIP_R600_940F, PCI_CHIP_R600_940F, RES_SHARED_VGA },
++ { PCI_CHIP_RV770_9440, PCI_CHIP_RV770_9440, RES_SHARED_VGA },
++ { PCI_CHIP_RV770_9441, PCI_CHIP_RV770_9441, RES_SHARED_VGA },
++ { PCI_CHIP_RV770_9442, PCI_CHIP_RV770_9442, RES_SHARED_VGA },
+  { PCI_CHIP_RV610_94C0, PCI_CHIP_RV610_94C0, RES_SHARED_VGA },
+  { PCI_CHIP_RV610_94C1, PCI_CHIP_RV610_94C1, RES_SHARED_VGA },
+  { PCI_CHIP_RV610_94C3, PCI_CHIP_RV610_94C3, RES_SHARED_VGA },
+@@ -267,6 +271,7 @@ PciChipsets RADEONPciChipsets[] = {
+  { PCI_CHIP_RV670_9507, PCI_CHIP_RV670_9507, RES_SHARED_VGA },
+  { PCI_CHIP_RV670_950F, PCI_CHIP_RV670_950F, RES_SHARED_VGA },
+  { PCI_CHIP_RV670_9511, PCI_CHIP_RV670_9511, RES_SHARED_VGA },
++ { PCI_CHIP_RV670_9515, PCI_CHIP_RV670_9515, RES_SHARED_VGA },
+  { PCI_CHIP_RV630_9580, PCI_CHIP_RV630_9580, RES_SHARED_VGA },
+  { PCI_CHIP_RV630_9581, PCI_CHIP_RV630_9581, RES_SHARED_VGA },
+  { PCI_CHIP_RV630_9583, PCI_CHIP_RV630_9583, RES_SHARED_VGA },
+diff --git a/src/radeon_pci_device_match_gen.h b/src/radeon_pci_device_match_gen.h
+index d81cbe3..d650f9f 100644
+--- a/src/radeon_pci_device_match_gen.h
++++ b/src/radeon_pci_device_match_gen.h
+@@ -1,6 +1,7 @@
+ /* This file is autogenerated please do not edit */
+ static const struct pci_id_match radeon_device_match[] = {
+  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3150, 0 ),
++ ATI_DEVICE_MATCH( PCI_CHIP_RV380_3151, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3152, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3154, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV380_3E50, 0 ),
+@@ -250,6 +251,9 @@ static const struct pci_id_match radeon_device_match[] = {
+  ATI_DEVICE_MATCH( PCI_CHIP_R600_940A, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_R600_940B, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_R600_940F, 0 ),
++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9440, 0 ),
++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9441, 0 ),
++ ATI_DEVICE_MATCH( PCI_CHIP_RV770_9442, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C0, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C1, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV610_94C3, 0 ),
+@@ -267,6 +271,7 @@ static const struct pci_id_match radeon_device_match[] = {
+  ATI_DEVICE_MATCH( PCI_CHIP_RV670_9507, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV670_950F, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV670_9511, 0 ),
++ ATI_DEVICE_MATCH( PCI_CHIP_RV670_9515, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9580, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9581, 0 ),
+  ATI_DEVICE_MATCH( PCI_CHIP_RV630_9583, 0 ),
+diff --git a/src/radeon_probe.h b/src/radeon_probe.h
+index 24af52b..c14241e 100644
+--- a/src/radeon_probe.h
++++ b/src/radeon_probe.h
+@@ -166,6 +166,8 @@ typedef struct
+     Bool   valid;
+     uint32_t mask_clk_reg;
+     uint32_t mask_data_reg;
++    uint32_t a_clk_reg;
++    uint32_t a_data_reg;
+     uint32_t put_clk_reg;
+     uint32_t put_data_reg;
+     uint32_t get_clk_reg;
+@@ -176,15 +178,15 @@ typedef struct
+     uint32_t put_data_mask;
+     uint32_t get_clk_mask;
+     uint32_t get_data_mask;
++    uint32_t a_clk_mask;
++    uint32_t a_data_mask;
++    int hw_line;
++    Bool hw_capable;
+ } RADEONI2CBusRec, *RADEONI2CBusPtr;
+ 
+ typedef struct _RADEONCrtcPrivateRec {
+-#ifdef USE_XAA
+-    FBLinearPtr rotate_mem_xaa;
+-#endif
+-#ifdef USE_EXA
+-    ExaOffscreenArea *rotate_mem_exa;
+-#endif
++    void *crtc_rotate_mem;
++    void *cursor_mem;
+     int crtc_id;
+     int binding;
+     uint32_t cursor_offset;
+@@ -235,8 +237,10 @@ typedef struct _RADEONOutputPrivateRec {
+     int               VSyncWidth;
+     int               VBlank;
+     int               Flags;            /* Saved copy of mode flags          */
+-    int               PanelPwrDly;
+     int               DotClock;
++    int               PanelPwrDly;
++    int               lvds_misc;
++    int               lvds_ss_id;
+     RADEONTMDSPll     tmds_pll[4];
+     RADEONRMXType     rmx_type;
+     /* dvo */
+@@ -310,8 +314,10 @@ struct avivo_grph_state {
+     uint32_t x_end;
+     uint32_t y_end;
+ 
++    uint32_t desktop_height;
+     uint32_t viewport_start;
+     uint32_t viewport_size;
++    uint32_t mode_data_format;
+ };
+ 
+ struct avivo_state
+@@ -326,6 +332,7 @@ struct avivo_state
+ 
+     uint32_t crtc_master_en;
+     uint32_t crtc_tv_control;
++    uint32_t dc_lb_memory_split;
+ 
+     struct avivo_pll_state pll1;
+     struct avivo_pll_state pll2;
+diff --git a/src/radeon_reg.h b/src/radeon_reg.h
+index 59e2f12..19f9869 100644
+--- a/src/radeon_reg.h
++++ b/src/radeon_reg.h
+@@ -1032,6 +1032,10 @@
+ #define RADEON_OV0_BASE_ADDR                0x43c
+ #define RADEON_NB_TOM                       0x15c
+ #define R300_MC_INIT_MISC_LAT_TIMER         0x180
++#       define R300_MC_DISP0R_INIT_LAT_SHIFT 8
++#       define R300_MC_DISP0R_INIT_LAT_MASK  0xf
++#       define R300_MC_DISP1R_INIT_LAT_SHIFT 12
++#       define R300_MC_DISP1R_INIT_LAT_MASK  0xf
+ #define RADEON_MCLK_CNTL                    0x0012 /* PLL */
+ #       define RADEON_FORCEON_MCLKA         (1 << 16)
+ #       define RADEON_FORCEON_MCLKB         (1 << 17)
+@@ -3185,6 +3189,7 @@
+ #define RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST       0x00000008
+ #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_POINT_LIST 0x00000009
+ #define RADEON_CP_VC_CNTL_PRIM_TYPE_3VRT_LINE_LIST  0x0000000a
++#define RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST       0x0000000d
+ #define RADEON_CP_VC_CNTL_PRIM_WALK_IND             0x00000010
+ #define RADEON_CP_VC_CNTL_PRIM_WALK_LIST            0x00000020
+ #define RADEON_CP_VC_CNTL_PRIM_WALK_RING            0x00000030
+@@ -3418,6 +3423,7 @@
+ #define RS690_MC_AGP_LOCATION			0x101
+ #define RS690_MC_AGP_BASE			0x102
+ #define RS690_MC_AGP_BASE_2                     0x103
++#define RS690_MC_INIT_MISC_LAT_TIMER            0x104
+ #define RS690_MC_STATUS                         0x90
+ #define RS690_MC_STATUS_IDLE                    (1 << 0)
+ 
+@@ -3431,12 +3437,13 @@
+ #define RS600_MC_STATUS                         0x0
+ #define RS600_MC_STATUS_IDLE                    (1 << 0)
+ 
+-#define AVIVO_MC_INDEX						0x0070
+-#define R520_MC_STATUS 0x00
+-#define R520_MC_STATUS_IDLE (1<<1)
+-#define RV515_MC_STATUS 0x08
+-#define RV515_MC_STATUS_IDLE (1<<4)
+-#define AVIVO_MC_DATA						0x0074
++#define AVIVO_MC_INDEX				0x0070
++#define R520_MC_STATUS                          0x00
++#       define R520_MC_STATUS_IDLE              (1 << 1)
++#define RV515_MC_STATUS                         0x08
++#       define RV515_MC_STATUS_IDLE             (1 << 4)
++#define RV515_MC_INIT_MISC_LAT_TIMER            0x09
++#define AVIVO_MC_DATA				0x0074
+ 
+ #define RV515_MC_FB_LOCATION   0x1
+ #define RV515_MC_AGP_LOCATION  0x2
+@@ -3598,8 +3605,20 @@
+ #define AVIVO_DC_LUTA_WHITE_OFFSET_GREEN        0x64d4
+ #define AVIVO_DC_LUTA_WHITE_OFFSET_RED          0x64d8
+ 
+-
+-#define AVIVO_D1MODE_DESKTOP_HEIGHT             0x652C
++#define AVIVO_DC_LB_MEMORY_SPLIT                0x6520
++#       define AVIVO_DC_LB_MEMORY_SPLIT_MASK    0x3
++#       define AVIVO_DC_LB_MEMORY_SPLIT_SHIFT   0
++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1HALF_D2HALF  0
++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_3Q_D2_1Q    1
++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_ONLY        2
++#       define AVIVO_DC_LB_MEMORY_SPLIT_D1_1Q_D2_3Q    3
++#       define AVIVO_DC_LB_MEMORY_SPLIT_SHIFT_MODE (1 << 2)
++#       define AVIVO_DC_LB_DISP1_END_ADR_SHIFT  4
++#       define AVIVO_DC_LB_DISP1_END_ADR_MASK   0x7ff
++
++#define AVIVO_D1MODE_DATA_FORMAT                0x6528
++#       define AVIVO_D1MODE_INTERLEAVE_EN       (1 << 0)
++#define AVIVO_D1MODE_DESKTOP_HEIGHT             0x652c
+ #define AVIVO_D1MODE_VIEWPORT_START             0x6580
+ #define AVIVO_D1MODE_VIEWPORT_SIZE              0x6584
+ #define AVIVO_D1MODE_EXT_OVERSCAN_LEFT_RIGHT    0x6588
+@@ -3651,6 +3670,8 @@
+ #define AVIVO_D2CUR_SIZE                        0x6c10
+ #define AVIVO_D2CUR_POSITION                    0x6c14
+ 
++#define AVIVO_D2MODE_DATA_FORMAT                0x6d28
++#define AVIVO_D2MODE_DESKTOP_HEIGHT             0x6d2c
+ #define AVIVO_D2MODE_VIEWPORT_START             0x6d80
+ #define AVIVO_D2MODE_VIEWPORT_SIZE              0x6d84
+ #define AVIVO_D2MODE_EXT_OVERSCAN_LEFT_RIGHT    0x6d88
+@@ -3658,6 +3679,7 @@
+ 
+ #define AVIVO_D2SCL_SCALER_ENABLE               0x6d90
+ #define AVIVO_D2SCL_SCALER_TAP_CONTROL	 	0x6d94
++#define AVIVO_D2SCL_UPDATE                      0x6dcc
+ 
+ #define AVIVO_DDIA_BIT_DEPTH_CONTROL				0x7214
+ 
+@@ -3918,6 +3940,8 @@
+ #define R600_MC_VM_SYSTEM_APERTURE_HIGH_ADDR                       0x2194
+ #define R600_MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR                    0x2198
+ 
++#define R700_MC_VM_FB_LOCATION                                     0x2024
++
+ #define R600_HDP_NONSURFACE_BASE                                0x2c04
+ 
+ #define R600_BUS_CNTL                                           0x5420
+@@ -4234,7 +4258,7 @@
+ #define R300_PVS_SRC_ADDR_SEL(x)                        (x << 29)
+ #define R300_PVS_SRC_ADDR_MODE_1                        (1 << 31)
+ 
+-#define R300_VAP_PVS_FLOW_CNTL_OPC		        0x22DC
++#define R300_VAP_PVS_FLOW_CNTL_OPC		        0x22dc
+ #define R300_VAP_OUT_VTX_FMT_0			        0x2090
+ #       define R300_VTX_POS_PRESENT                     (1 << 0)
+ #       define R300_VTX_COLOR_0_PRESENT                 (1 << 1)
+@@ -4322,6 +4346,7 @@
+ 
+ #define R300_TX_INVALTAGS				0x4100
+ #define R300_TX_FILTER0_0				0x4400
++#define R300_TX_FILTER0_1				0x4404
+ #       define R300_TX_CLAMP_S(x)                       (x << 0)
+ #       define R300_TX_CLAMP_T(x)                       (x << 3)
+ #       define R300_TX_CLAMP_R(x)                       (x << 6)
+@@ -4339,7 +4364,9 @@
+ #       define R300_TX_MIN_FILTER_LINEAR                (2 << 11)
+ #       define R300_TX_ID_SHIFT                         28
+ #define R300_TX_FILTER1_0				0x4440
++#define R300_TX_FILTER1_1				0x4444
+ #define R300_TX_FORMAT0_0				0x4480
++#define R300_TX_FORMAT0_1				0x4484
+ #       define R300_TXWIDTH_SHIFT                       0
+ #       define R300_TXHEIGHT_SHIFT                      11
+ #       define R300_NUM_LEVELS_SHIFT                    26
+@@ -4347,6 +4374,7 @@
+ #       define R300_TXPROJECTED                         (1 << 30)
+ #       define R300_TXPITCH_EN                          (1 << 31)
+ #define R300_TX_FORMAT1_0				0x44c0
++#define R300_TX_FORMAT1_1				0x44c4
+ #	define R300_TX_FORMAT_X8		    0x0
+ #	define R300_TX_FORMAT_X16		    0x1
+ #	define R300_TX_FORMAT_Y4X4		    0x2
+@@ -4420,10 +4448,12 @@
+ #       define R300_TX_FORMAT_SWAP_YUV                 (1 << 24)
+ 
+ #define R300_TX_FORMAT2_0				0x4500
++#define R300_TX_FORMAT2_1				0x4504
+ #       define R500_TXWIDTH_11                          (1 << 15)
+ #       define R500_TXHEIGHT_11                         (1 << 16)
+ 
+ #define R300_TX_OFFSET_0				0x4540
++#define R300_TX_OFFSET_1				0x4544
+ #       define R300_ENDIAN_SWAP_16_BIT                  (1 << 0)
+ #       define R300_ENDIAN_SWAP_32_BIT                  (2 << 0)
+ #       define R300_ENDIAN_SWAP_HALF_DWORD              (3 << 0)
+@@ -4500,6 +4530,7 @@
+ #define R300_US_TEX_INST_0				0x4620
+ #define R300_US_TEX_INST_1				0x4624
+ #define R300_US_TEX_INST_2				0x4628
++#define R300_US_TEX_INST(x)			        (R300_US_TEX_INST_0 + (x)*4)
+ #       define R300_TEX_SRC_ADDR(x)                     (x << 0)
+ #       define R300_TEX_DST_ADDR(x)                     (x << 6)
+ #       define R300_TEX_ID(x)                           (x << 11)
+@@ -4512,11 +4543,13 @@
+ #define R300_US_ALU_RGB_ADDR_0			        0x46c0
+ #define R300_US_ALU_RGB_ADDR_1			        0x46c4
+ #define R300_US_ALU_RGB_ADDR_2			        0x46c8
++#define R300_US_ALU_RGB_ADDR(x)			        (R300_US_ALU_RGB_ADDR_0 + (x)*4)
+ /* for ADDR0-2, values 0-31 specify a location in the pixel stack,
+    values 32-63 specify a constant */
+ #       define R300_ALU_RGB_ADDR0(x)                    (x << 0)
+ #       define R300_ALU_RGB_ADDR1(x)                    (x << 6)
+ #       define R300_ALU_RGB_ADDR2(x)                    (x << 12)
++#       define R300_ALU_RGB_CONST(x)                    ((x) | (1 << 5))
+ /* ADDRD - where on the pixel stack the result of this instruction
+    will be written */
+ #       define R300_ALU_RGB_ADDRD(x)                    (x << 18)
+@@ -4526,6 +4559,7 @@
+ #       define R300_ALU_RGB_MASK_R                      1
+ #       define R300_ALU_RGB_MASK_G                      2
+ #       define R300_ALU_RGB_MASK_B                      4
++#       define R300_ALU_RGB_MASK_RGB                    7
+ #       define R300_ALU_RGB_TARGET_A                    (0 << 29)
+ #       define R300_ALU_RGB_TARGET_B                    (1 << 29)
+ #       define R300_ALU_RGB_TARGET_C                    (2 << 29)
+@@ -4533,6 +4567,7 @@
+ #define R300_US_ALU_RGB_INST_0			        0x48c0
+ #define R300_US_ALU_RGB_INST_1			        0x48c4
+ #define R300_US_ALU_RGB_INST_2			        0x48c8
++#define R300_US_ALU_RGB_INST(x)			        (R300_US_ALU_RGB_INST_0 + (x)*4)
+ #       define R300_ALU_RGB_SEL_A(x)                    (x << 0)
+ #       define R300_ALU_RGB_SRC0_RGB                    0
+ #       define R300_ALU_RGB_SRC0_RRR                    1
+@@ -4604,11 +4639,13 @@
+ #define R300_US_ALU_ALPHA_ADDR_0		        0x47c0
+ #define R300_US_ALU_ALPHA_ADDR_1		        0x47c4
+ #define R300_US_ALU_ALPHA_ADDR_2		        0x47c8
++#define R300_US_ALU_ALPHA_ADDR(x)		        (R300_US_ALU_ALPHA_ADDR_0 + (x)*4)
+ /* for ADDR0-2, values 0-31 specify a location in the pixel stack,
+    values 32-63 specify a constant */
+ #       define R300_ALU_ALPHA_ADDR0(x)                  (x << 0)
+ #       define R300_ALU_ALPHA_ADDR1(x)                  (x << 6)
+ #       define R300_ALU_ALPHA_ADDR2(x)                  (x << 12)
++#       define R300_ALU_ALPHA_CONST(x)                  ((x) | (1 << 5))
+ /* ADDRD - where on the pixel stack the result of this instruction
+    will be written */
+ #       define R300_ALU_ALPHA_ADDRD(x)                  (x << 18)
+@@ -4624,6 +4661,7 @@
+ #define R300_US_ALU_ALPHA_INST_0		        0x49c0
+ #define R300_US_ALU_ALPHA_INST_1		        0x49c4
+ #define R300_US_ALU_ALPHA_INST_2		        0x49c8
++#define R300_US_ALU_ALPHA_INST(x)		        (R300_US_ALU_ALPHA_INST_0 + (x)*4)
+ #       define R300_ALU_ALPHA_SEL_A(x)                  (x << 0)
+ #       define R300_ALU_ALPHA_SRC0_R                    0
+ #       define R300_ALU_ALPHA_SRC0_G                    1
+@@ -4680,6 +4718,15 @@
+ #       define R300_ALU_ALPHA_OMOD_DIV_8                6
+ #       define R300_ALU_ALPHA_CLAMP                     (1 << 30)
+ 
++#define R300_US_ALU_CONST_R_0                           0x4c00
++#define R300_US_ALU_CONST_R(x)                          (R300_US_ALU_CONST_R_0 + (x)*16)
++#define R300_US_ALU_CONST_G_0                           0x4c04
++#define R300_US_ALU_CONST_G(x)                          (R300_US_ALU_CONST_G_0 + (x)*16)
++#define R300_US_ALU_CONST_B_0                           0x4c08
++#define R300_US_ALU_CONST_B(x)                          (R300_US_ALU_CONST_B_0 + (x)*16)
++#define R300_US_ALU_CONST_A_0                           0x4c0c
++#define R300_US_ALU_CONST_A(x)                          (R300_US_ALU_CONST_A_0 + (x)*16)
++
+ #define R300_FG_DEPTH_SRC				0x4bd8
+ #define R300_FG_FOG_BLEND				0x4bc0
+ #define R300_FG_ALPHA_FUNC				0x4bd4
+@@ -4759,10 +4806,11 @@
+ 
+ /* R500 US has to be loaded through an index/data pair */
+ #define R500_GA_US_VECTOR_INDEX				0x4250
+-#   define R500_US_VECTOR_INDEX(x)			(x << 0)
+ #   define R500_US_VECTOR_TYPE_INST			(0 << 16)
+ #   define R500_US_VECTOR_TYPE_CONST			(1 << 16)
+ #   define R500_US_VECTOR_CLAMP				(1 << 17)
++#   define R500_US_VECTOR_INST_INDEX(x)			((x) | R500_US_VECTOR_TYPE_INST)
++#   define R500_US_VECTOR_CONST_INDEX(x)		((x) | R500_US_VECTOR_TYPE_CONST)
+ #define R500_GA_US_VECTOR_DATA				0x4254
+ 
+ /*
+diff --git a/src/radeon_render.c b/src/radeon_render.c
+index dbd5b79..6668fe0 100644
+--- a/src/radeon_render.c
++++ b/src/radeon_render.c
+@@ -268,7 +268,7 @@ RemoveLinear (FBLinearPtr linear)
+ {
+    RADEONInfoPtr info = (RADEONInfoPtr)(linear->devPrivate.ptr);
+ 
+-   info->RenderTex = NULL; 
++   info->accel_state->RenderTex = NULL; 
+ }
+ 
+ static void
+@@ -276,13 +276,14 @@ RenderCallback (ScrnInfoPtr pScrn)
+ {
+     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+ 
+-    if ((currentTime.milliseconds > info->RenderTimeout) && info->RenderTex) {
+-	xf86FreeOffscreenLinear(info->RenderTex);
+-	info->RenderTex = NULL;
++    if ((currentTime.milliseconds > info->accel_state->RenderTimeout) &&
++	info->accel_state->RenderTex) {
++	xf86FreeOffscreenLinear(info->accel_state->RenderTex);
++	info->accel_state->RenderTex = NULL;
+     }
+ 
+-    if (!info->RenderTex)
+-	info->RenderCallback = NULL;
++    if (!info->accel_state->RenderTex)
++	info->accel_state->RenderCallback = NULL;
+ }
+ 
+ static Bool
+@@ -293,30 +294,30 @@ AllocateLinear (
+    RADEONInfoPtr  info       = RADEONPTR(pScrn);
+    int cpp = info->CurrentLayout.bitsPerPixel / 8;
+ 
+-   info->RenderTimeout = currentTime.milliseconds + 30000;
+-   info->RenderCallback = RenderCallback;
++   info->accel_state->RenderTimeout = currentTime.milliseconds + 30000;
++   info->accel_state->RenderCallback = RenderCallback;
+ 
+    /* XAA allocates in units of pixels at the screen bpp, so adjust size
+     * appropriately.
+     */
+    sizeNeeded = (sizeNeeded + cpp - 1) / cpp;
+ 
+-   if (info->RenderTex) {
+-	if (info->RenderTex->size >= sizeNeeded)
++   if (info->accel_state->RenderTex) {
++	if (info->accel_state->RenderTex->size >= sizeNeeded)
+ 	   return TRUE;
+ 	else {
+-	   if (xf86ResizeOffscreenLinear(info->RenderTex, sizeNeeded))
++	   if (xf86ResizeOffscreenLinear(info->accel_state->RenderTex, sizeNeeded))
+ 		return TRUE;
+ 
+-	   xf86FreeOffscreenLinear(info->RenderTex);
+-	   info->RenderTex = NULL;
++	   xf86FreeOffscreenLinear(info->accel_state->RenderTex);
++	   info->accel_state->RenderTex = NULL;
+ 	}
+    }
+ 
+-   info->RenderTex = xf86AllocateOffscreenLinear(pScrn->pScreen, sizeNeeded, 32,
+-						 NULL, RemoveLinear, info);
++   info->accel_state->RenderTex = xf86AllocateOffscreenLinear(pScrn->pScreen, sizeNeeded, 32,
++							      NULL, RemoveLinear, info);
+ 
+-   return (info->RenderTex != NULL);
++   return (info->accel_state->RenderTex != NULL);
+ }
+ 
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+@@ -435,7 +436,7 @@ static Bool FUNC_NAME(R100SetupTexture)(
+ 	txformat |= RADEON_TXFORMAT_NON_POWER2;
+     }
+ 
+-    offset = info->RenderTex->offset * pScrn->bitsPerPixel / 8;
++    offset = info->accel_state->RenderTex->offset * pScrn->bitsPerPixel / 8;
+     dst = (uint8_t*)(info->FB + offset);
+ 
+     /* Upload texture to card. */
+@@ -459,8 +460,8 @@ static Bool FUNC_NAME(R100SetupTexture)(
+ 
+ #else
+ 
+-    if (info->accel->NeedToSync)
+-	info->accel->Sync(pScrn);
++    if (info->accel_state->accel->NeedToSync)
++	info->accel_state->accel->Sync(pScrn);
+ 
+     while (height--) {
+ 	memcpy(dst, src, width * tex_bytepp);
+@@ -514,7 +515,7 @@ FUNC_NAME(R100SetupForCPUToScreenAlphaTexture) (
+     if (blend_cntl == 0)
+ 	return FALSE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!FUNC_NAME(R100SetupTexture)(pScrn, maskFormat, alphaPtr, alphaPitch,
+@@ -565,7 +566,7 @@ FUNC_NAME(R100SetupForCPUToScreenTexture) (
+     if (blend_cntl == 0)
+ 	return FALSE;
+     
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!FUNC_NAME(R100SetupTexture)(pScrn, srcFormat, texPtr, texPitch, width,
+@@ -772,10 +773,10 @@ static Bool FUNC_NAME(R200SetupTexture)(
+ 	txformat |= RADEON_TXFORMAT_NON_POWER2;
+     }
+ 
+-    info->texW[0] = width;
+-    info->texH[0] = height;
++    info->accel_state->texW[0] = width;
++    info->accel_state->texH[0] = height;
+ 
+-    offset = info->RenderTex->offset * pScrn->bitsPerPixel / 8;
++    offset = info->accel_state->RenderTex->offset * pScrn->bitsPerPixel / 8;
+     dst = (uint8_t*)(info->FB + offset);
+ 
+     /* Upload texture to card. */
+@@ -799,8 +800,8 @@ static Bool FUNC_NAME(R200SetupTexture)(
+ 
+ #else
+ 
+-    if (info->accel->NeedToSync)
+-	info->accel->Sync(pScrn);
++    if (info->accel_state->accel->NeedToSync)
++	info->accel_state->accel->Sync(pScrn);
+ 
+     while (height--) {
+ 	memcpy(dst, src, width * tex_bytepp);
+@@ -855,7 +856,7 @@ FUNC_NAME(R200SetupForCPUToScreenAlphaTexture) (
+     if (blend_cntl == 0)
+ 	return FALSE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!FUNC_NAME(R200SetupTexture)(pScrn, maskFormat, alphaPtr, alphaPitch,
+@@ -907,7 +908,7 @@ FUNC_NAME(R200SetupForCPUToScreenTexture) (
+     if (blend_cntl == 0)
+ 	return FALSE;
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     if (!FUNC_NAME(R200SetupTexture)(pScrn, srcFormat, texPtr, texPitch, width,
+@@ -974,10 +975,10 @@ FUNC_NAME(R200SubsequentCPUToScreenTexture) (
+     
+     r = width + l;
+     b = height + t;
+-    fl = (float)srcx / info->texW[0];
+-    fr = (float)(srcx + width) / info->texW[0];
+-    ft = (float)srcy / info->texH[0];
+-    fb = (float)(srcy + height) / info->texH[0];
++    fl = (float)srcx / info->accel_state->texW[0];
++    fr = (float)(srcx + width) / info->accel_state->texW[0];
++    ft = (float)srcy / info->accel_state->texH[0];
++    fb = (float)(srcy + height) / info->accel_state->texH[0];
+ 
+ #ifdef ACCEL_CP
+     BEGIN_RING(24);
+diff --git a/src/radeon_sarea.h b/src/radeon_sarea.h
+deleted file mode 100644
+index 80333a4..0000000
+--- a/src/radeon_sarea.h
++++ /dev/null
+@@ -1,231 +0,0 @@
+-/*
+- * Copyright 2000 ATI Technologies Inc., Markham, Ontario,
+- *                VA Linux Systems Inc., Fremont, California.
+- *
+- * All Rights Reserved.
+- *
+- * Permission is hereby granted, free of charge, to any person obtaining
+- * a copy of this software and associated documentation files (the
+- * "Software"), to deal in the Software without restriction, including
+- * without limitation on the rights to use, copy, modify, merge,
+- * publish, distribute, sublicense, and/or sell copies of the Software,
+- * and to permit persons to whom the Software is furnished to do so,
+- * subject to the following conditions:
+- *
+- * The above copyright notice and this permission notice (including the
+- * next paragraph) shall be included in all copies or substantial
+- * portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR
+- * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+- * DEALINGS IN THE SOFTWARE.
+- */
+-
+-/*
+- * Authors:
+- *   Kevin E. Martin <martin@xfree86.org>
+- *   Gareth Hughes <gareth@valinux.com>
+- *
+- */
+-
+-#ifndef _RADEON_SAREA_H_
+-#define _RADEON_SAREA_H_
+-
+-/* WARNING: If you change any of these defines, make sure to change the
+- * defines in the kernel file (radeon_drm.h)
+- */
+-#ifndef __RADEON_SAREA_DEFINES__
+-#define __RADEON_SAREA_DEFINES__
+-
+-/* What needs to be changed for the current vertex buffer? */
+-#define RADEON_UPLOAD_CONTEXT		0x00000001
+-#define RADEON_UPLOAD_VERTFMT		0x00000002
+-#define RADEON_UPLOAD_LINE		0x00000004
+-#define RADEON_UPLOAD_BUMPMAP		0x00000008
+-#define RADEON_UPLOAD_MASKS		0x00000010
+-#define RADEON_UPLOAD_VIEWPORT		0x00000020
+-#define RADEON_UPLOAD_SETUP		0x00000040
+-#define RADEON_UPLOAD_TCL		0x00000080
+-#define RADEON_UPLOAD_MISC		0x00000100
+-#define RADEON_UPLOAD_TEX0		0x00000200
+-#define RADEON_UPLOAD_TEX1		0x00000400
+-#define RADEON_UPLOAD_TEX2		0x00000800
+-#define RADEON_UPLOAD_TEX0IMAGES	0x00001000
+-#define RADEON_UPLOAD_TEX1IMAGES	0x00002000
+-#define RADEON_UPLOAD_TEX2IMAGES	0x00004000
+-#define RADEON_UPLOAD_CLIPRECTS		0x00008000 /* handled client-side */
+-#define RADEON_REQUIRE_QUIESCENCE	0x00010000
+-#define RADEON_UPLOAD_ZBIAS		0x00020000
+-#define RADEON_UPLOAD_ALL		0x0002ffff
+-#define RADEON_UPLOAD_CONTEXT_ALL       0x000201ff
+-
+-#define RADEON_FRONT			0x1
+-#define RADEON_BACK			0x2
+-#define RADEON_DEPTH			0x4
+-#define RADEON_STENCIL                  0x8
+-
+-/* Primitive types */
+-#define RADEON_POINTS			0x1
+-#define RADEON_LINES			0x2
+-#define RADEON_LINE_STRIP		0x3
+-#define RADEON_TRIANGLES		0x4
+-#define RADEON_TRIANGLE_FAN		0x5
+-#define RADEON_TRIANGLE_STRIP		0x6
+-#define RADEON_3VTX_POINTS		0x9
+-#define RADEON_3VTX_LINES		0xa
+-
+-/* Vertex/indirect buffer size */
+-#define RADEON_BUFFER_SIZE		65536
+-
+-/* Byte offsets for indirect buffer data */
+-#define RADEON_INDEX_PRIM_OFFSET	20
+-#define RADEON_HOSTDATA_BLIT_OFFSET	32
+-
+-#define RADEON_SCRATCH_REG_OFFSET	32
+-
+-/* Keep these small for testing */
+-#define RADEON_NR_SAREA_CLIPRECTS	12
+-
+-/* There are 2 heaps (local/GART).  Each region within a heap is a
+- * minimum of 64k, and there are at most 64 of them per heap.
+- */
+-#define RADEON_CARD_HEAP		0
+-#define RADEON_GART_HEAP		1
+-#define RADEON_NR_TEX_HEAPS		2
+-#define RADEON_NR_TEX_REGIONS		64
+-#define RADEON_LOG_TEX_GRANULARITY	16
+-
+-#define RADEON_MAX_TEXTURE_LEVELS	12
+-#define RADEON_MAX_TEXTURE_UNITS	3
+-
+-/* Blits have strict offset rules.  All blit offset must be aligned on
+- * a 1K-byte boundary.
+- */
+-#define RADEON_OFFSET_SHIFT		10
+-#define RADEON_OFFSET_ALIGN		(1 << RADEON_OFFSET_SHIFT)
+-#define RADEON_OFFSET_MASK		(RADEON_OFFSET_ALIGN - 1)
+-
+-#endif /* __RADEON_SAREA_DEFINES__ */
+-
+-typedef struct {
+-    unsigned int red;
+-    unsigned int green;
+-    unsigned int blue;
+-    unsigned int alpha;
+-} radeon_color_regs_t;
+-
+-typedef struct {
+-    /* Context state */
+-    unsigned int pp_misc;
+-    unsigned int pp_fog_color;
+-    unsigned int re_solid_color;
+-    unsigned int rb3d_blendcntl;
+-    unsigned int rb3d_depthoffset;
+-    unsigned int rb3d_depthpitch;
+-    unsigned int rb3d_zstencilcntl;
+-
+-    unsigned int pp_cntl;
+-    unsigned int rb3d_cntl;
+-    unsigned int rb3d_coloroffset;
+-    unsigned int re_width_height;
+-    unsigned int rb3d_colorpitch;
+-    unsigned int se_cntl;
+-
+-    /* Vertex format state */
+-    unsigned int se_coord_fmt;
+-
+-    /* Line state */
+-    unsigned int re_line_pattern;
+-    unsigned int re_line_state;
+-
+-    unsigned int se_line_width;
+-
+-    /* Bumpmap state */
+-    unsigned int pp_lum_matrix;
+-
+-    unsigned int pp_rot_matrix_0;
+-    unsigned int pp_rot_matrix_1;
+-
+-    /* Mask state */
+-    unsigned int rb3d_stencilrefmask;
+-    unsigned int rb3d_ropcntl;
+-    unsigned int rb3d_planemask;
+-
+-    /* Viewport state */
+-    unsigned int se_vport_xscale;
+-    unsigned int se_vport_xoffset;
+-    unsigned int se_vport_yscale;
+-    unsigned int se_vport_yoffset;
+-    unsigned int se_vport_zscale;
+-    unsigned int se_vport_zoffset;
+-
+-    /* Setup state */
+-    unsigned int se_cntl_status;
+-
+-    /* Misc state */
+-    unsigned int re_top_left;
+-    unsigned int re_misc;
+-} radeon_context_regs_t;
+-
+-/* Setup registers for each texture unit */
+-typedef struct {
+-    unsigned int pp_txfilter;
+-    unsigned int pp_txformat;
+-    unsigned int pp_txoffset;
+-    unsigned int pp_txcblend;
+-    unsigned int pp_txablend;
+-    unsigned int pp_tfactor;
+-    unsigned int pp_border_color;
+-} radeon_texture_regs_t;
+-
+-typedef struct {
+-    /* The channel for communication of state information to the kernel
+-     * on firing a vertex buffer.
+-     */
+-    radeon_context_regs_t ContextState;
+-    radeon_texture_regs_t TexState[RADEON_MAX_TEXTURE_UNITS];
+-    unsigned int dirty;
+-    unsigned int vertsize;
+-    unsigned int vc_format;
+-
+-    /* The current cliprects, or a subset thereof */
+-    drm_clip_rect_t boxes[RADEON_NR_SAREA_CLIPRECTS];
+-    unsigned int nbox;
+-
+-    /* Counters for throttling of rendering clients */
+-    unsigned int last_frame;
+-    unsigned int last_dispatch;
+-    unsigned int last_clear;
+-
+-    /* Maintain an LRU of contiguous regions of texture space.  If you
+-     * think you own a region of texture memory, and it has an age
+-     * different to the one you set, then you are mistaken and it has
+-     * been stolen by another client.  If global texAge hasn't changed,
+-     * there is no need to walk the list.
+-     *
+-     * These regions can be used as a proxy for the fine-grained texture
+-     * information of other clients - by maintaining them in the same
+-     * lru which is used to age their own textures, clients have an
+-     * approximate lru for the whole of global texture space, and can
+-     * make informed decisions as to which areas to kick out.  There is
+-     * no need to choose whether to kick out your own texture or someone
+-     * else's - simply eject them all in LRU order.
+-     */
+-				/* Last elt is sentinal */
+-    drmTextureRegion texList[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS+1];
+-				/* last time texture was uploaded */
+-    unsigned int texAge[RADEON_NR_TEX_HEAPS];
+-
+-    int ctxOwner;		/* last context to upload state */
+-    int pfAllowPageFlip;	/* set by the 2d driver, read by the client */
+-    int pfCurrentPage;		/* set by kernel, read by others */
+-    int crtc2_base;		/* for pageflipping with CloneMode */
+-    int tiling_enabled;         /* set by drm, read by 2d + 3d clients */
+- } RADEONSAREAPriv, *RADEONSAREAPrivPtr;
+-
+-#endif
+diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
+index cfa349d..c185b46 100644
+--- a/src/radeon_textured_video.c
++++ b/src/radeon_textured_video.c
+@@ -81,33 +81,43 @@ static __inline__ uint32_t F_TO_DW(float val)
+ }
+ 
+ #define ACCEL_MMIO
+-#define VIDEO_PREAMBLE()	unsigned char *RADEONMMIO = info->MMIO
+-#define BEGIN_VIDEO(n)		RADEONWaitForFifo(pScrn, (n))
+-#define OUT_VIDEO_REG(reg, val)	OUTREG(reg, val)
+-#define OUT_VIDEO_REG_F(reg, val) OUTREG(reg, F_TO_DW(val))
+-#define FINISH_VIDEO()
++#define ACCEL_PREAMBLE()	unsigned char *RADEONMMIO = info->MMIO
++#define BEGIN_ACCEL(n)		RADEONWaitForFifo(pScrn, (n))
++#define OUT_ACCEL_REG(reg, val)	OUTREG(reg, val)
++#define OUT_ACCEL_REG_F(reg, val) OUTREG(reg, F_TO_DW(val))
++#define FINISH_ACCEL()
+ 
+ #include "radeon_textured_videofuncs.c"
+ 
+ #undef ACCEL_MMIO
+-#undef VIDEO_PREAMBLE
+-#undef BEGIN_VIDEO
+-#undef OUT_VIDEO_REG
+-#undef FINISH_VIDEO
++#undef ACCEL_PREAMBLE
++#undef BEGIN_ACCEL
++#undef OUT_ACCEL_REG
++#undef OUT_ACCEL_REG_F
++#undef FINISH_ACCEL
+ 
+ #ifdef XF86DRI
+ 
+ #define ACCEL_CP
+-#define VIDEO_PREAMBLE()						\
++#define ACCEL_PREAMBLE()						\
+     RING_LOCALS;							\
+     RADEONCP_REFRESH(pScrn, info)
+-#define BEGIN_VIDEO(n)		BEGIN_RING(2*(n))
+-#define OUT_VIDEO_REG(reg, val)	OUT_RING_REG(reg, val)
+-#define FINISH_VIDEO()		ADVANCE_RING()
+-#define OUT_VIDEO_RING_F(x) OUT_RING(F_TO_DW(x))
++#define BEGIN_ACCEL(n)		BEGIN_RING(2*(n))
++#define OUT_ACCEL_REG(reg, val)	OUT_RING_REG(reg, val)
++#define OUT_ACCEL_REG_F(reg, val)	OUT_ACCEL_REG(reg, F_TO_DW(val))
++#define FINISH_ACCEL()		ADVANCE_RING()
++#define OUT_RING_F(x) OUT_RING(F_TO_DW(x))
+ 
+ #include "radeon_textured_videofuncs.c"
+ 
++#undef ACCEL_CP
++#undef ACCEL_PREAMBLE
++#undef BEGIN_ACCEL
++#undef OUT_ACCEL_REG
++#undef OUT_ACCEL_REG_F
++#undef FINISH_ACCEL
++#undef OUT_RING_F
++
+ #endif /* XF86DRI */
+ 
+ static int
+@@ -187,18 +197,30 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
+        dstPitch = (dstPitch + 15) & ~15;
+ 
+     if (pPriv->video_memory != NULL && size != pPriv->size) {
+-	RADEONFreeMemory(pScrn, pPriv->video_memory);
++	radeon_legacy_free_memory(pScrn, pPriv->video_memory);
+ 	pPriv->video_memory = NULL;
+     }
+ 
+     if (pPriv->video_memory == NULL) {
+-	pPriv->video_offset = RADEONAllocateMemory(pScrn,
+-						       &pPriv->video_memory,
+-						       size * 2);
++	pPriv->video_offset = radeon_legacy_allocate_memory(pScrn,
++						            &pPriv->video_memory,
++						            size * 2, 64);
+ 	if (pPriv->video_offset == 0)
+ 	    return BadAlloc;
+     }
+ 
++    /* Bicubic filter loading */
++    if (!IS_R500_3D)
++	pPriv->bicubic_enabled = FALSE;
++    if (pPriv->bicubic_memory == NULL && pPriv->bicubic_enabled) {
++	pPriv->bicubic_offset = radeon_legacy_allocate_memory(pScrn,
++						              &pPriv->bicubic_memory,
++						              sizeof(bicubic_tex_512), 64);
++	pPriv->bicubic_src_offset = pPriv->bicubic_offset + info->fbLocation + pScrn->fbOffset;
++	if (pPriv->bicubic_offset == 0)
++		pPriv->bicubic_enabled = FALSE;
++    }
++
+     if (pDraw->type == DRAWABLE_WINDOW)
+ 	pPriv->pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr)pDraw);
+     else
+@@ -267,6 +289,10 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
+ 	break;
+     }
+ 
++    /* Upload bicubic filter tex */
++    if (pPriv->bicubic_enabled)
++	RADEONCopyData(pScrn, (uint8_t *)bicubic_tex_512, (uint8_t *)(info->FB + pPriv->bicubic_offset), 1024, 1024, 1, 512, 2);
++
+     /* update cliplist */
+     if (!REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes)) {
+ 	REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes);
+@@ -320,12 +346,16 @@ static XF86VideoFormatRec Formats[NUM_FORMATS] =
+     {15, TrueColor}, {16, TrueColor}, {24, TrueColor}
+ };
+ 
+-#define NUM_ATTRIBUTES 0
++#define NUM_ATTRIBUTES 1
+ 
+-static XF86AttributeRec Attributes[NUM_ATTRIBUTES] =
++static XF86AttributeRec Attributes[NUM_ATTRIBUTES+1] =
+ {
++    {XvSettable | XvGettable, 0, 1, "XV_BICUBIC"},
++    {0, 0, 0, NULL}
+ };
+ 
++static Atom xvBicubic;
++
+ #define NUM_IMAGES 4
+ 
+ static XF86ImageRec Images[NUM_IMAGES] =
+@@ -336,6 +366,44 @@ static XF86ImageRec Images[NUM_IMAGES] =
+     XVIMAGE_UYVY
+ };
+ 
++int
++RADEONGetTexPortAttribute(ScrnInfoPtr  pScrn,
++		       Atom	    attribute,
++		       INT32	    *value,
++		       pointer	    data)
++{
++    RADEONInfoPtr	info = RADEONPTR(pScrn);
++    RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data;
++
++    if (info->accelOn) RADEON_SYNC(info, pScrn);
++
++    if (attribute == xvBicubic)
++	*value = pPriv->bicubic_enabled ? 1 : 0;
++    else
++	return BadMatch;
++
++    return Success;
++}
++
++int
++RADEONSetTexPortAttribute(ScrnInfoPtr  pScrn,
++		       Atom	    attribute,
++		       INT32	    value,
++		       pointer	    data)
++{
++    RADEONInfoPtr	info = RADEONPTR(pScrn);
++    RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data;
++
++    RADEON_SYNC(info, pScrn);
++
++    if (attribute == xvBicubic)
++	pPriv->bicubic_enabled = ClipValue (value, 0, 1);
++    else
++	return BadMatch;
++
++    return Success;
++}
++
+ XF86VideoAdaptorPtr
+ RADEONSetupImageTexturedVideo(ScreenPtr pScreen)
+ {
+@@ -351,6 +419,8 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen)
+     if (adapt == NULL)
+ 	return NULL;
+ 
++    xvBicubic         = MAKE_ATOM("XV_BICUBIC");
++
+     adapt->type = XvWindowMask | XvInputMask | XvImageMask;
+     adapt->flags = 0;
+     adapt->name = "Radeon Textured Video";
+@@ -367,8 +437,13 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen)
+     pPortPriv =
+ 	(RADEONPortPrivPtr)(&adapt->pPortPrivates[num_texture_ports]);
+ 
+-    adapt->nAttributes = NUM_ATTRIBUTES;
+-    adapt->pAttributes = Attributes;
++    if (IS_R500_3D) {
++	adapt->nAttributes = NUM_ATTRIBUTES;
++	adapt->pAttributes = Attributes;
++    } else {
++	adapt->nAttributes = 0;
++	adapt->pAttributes = NULL;
++    }
+     adapt->pImages = Images;
+     adapt->nImages = NUM_IMAGES;
+     adapt->PutVideo = NULL;
+@@ -376,8 +451,8 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen)
+     adapt->GetVideo = NULL;
+     adapt->GetStill = NULL;
+     adapt->StopVideo = RADEONStopVideo;
+-    adapt->SetPortAttribute = RADEONSetPortAttribute;
+-    adapt->GetPortAttribute = RADEONGetPortAttribute;
++    adapt->SetPortAttribute = RADEONSetTexPortAttribute;
++    adapt->GetPortAttribute = RADEONGetTexPortAttribute;
+     adapt->QueryBestSize = RADEONQueryBestSize;
+     adapt->PutImage = RADEONPutImageTextured;
+     adapt->ReputImage = NULL;
+@@ -390,6 +465,7 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen)
+ 	pPriv->videoStatus = 0;
+ 	pPriv->currentBuffer = 0;
+ 	pPriv->doubleBuffer = 0;
++	pPriv->bicubic_enabled = (info->ChipFamily >= CHIP_FAMILY_RV515);
+ 
+ 	/* gotta uninit this someplace, XXX: shouldn't be necessary for textured */
+ 	REGION_NULL(pScreen, &pPriv->clip);
+diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
+index 277d9b2..c5ad0e1 100644
+--- a/src/radeon_textured_videofuncs.c
++++ b/src/radeon_textured_videofuncs.c
+@@ -45,26 +45,47 @@
+ #endif
+ #endif
+ 
++#define VTX_DWORD_COUNT_FILTER 6
+ #define VTX_DWORD_COUNT 4
+ 
+ #ifdef ACCEL_CP
+ 
++#define VTX_OUT_FILTER(_dstX, _dstY, _srcX, _srcY, _maskX, _maskY)	\
++do {									\
++    OUT_RING_F(_dstX);						\
++    OUT_RING_F(_dstY);						\
++    OUT_RING_F(_srcX);						\
++    OUT_RING_F(_srcY);						\
++    OUT_RING_F(_maskX);						\
++    OUT_RING_F(_maskY);						\
++} while (0)
++
+ #define VTX_OUT(_dstX, _dstY, _srcX, _srcY)	\
+ do {								\
+-    OUT_VIDEO_RING_F(_dstX);						\
+-    OUT_VIDEO_RING_F(_dstY);						\
+-    OUT_VIDEO_RING_F(_srcX);						\
+-    OUT_VIDEO_RING_F(_srcY);						\
++    OUT_RING_F(_dstX);						\
++    OUT_RING_F(_dstY);						\
++    OUT_RING_F(_srcX);						\
++    OUT_RING_F(_srcY);						\
+ } while (0)
+ 
+ #else /* ACCEL_CP */
+ 
++#define VTX_OUT_FILTER(_dstX, _dstY, _srcX, _srcY, _maskX, _maskY)	\
++do {									\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstX);			\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstY);			\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcX);			\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcY);			\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _maskX);			\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _maskY);			\
++} while (0)
++
+ #define VTX_OUT(_dstX, _dstY, _srcX, _srcY)	\
+ do {								\
+-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _dstX);		\
+-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _dstY);		\
+-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _srcX);		\
+-    OUT_VIDEO_REG_F(RADEON_SE_PORT_DATA0, _srcY);		\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstX);		\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _dstY);		\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcX);		\
++    OUT_ACCEL_REG_F(RADEON_SE_PORT_DATA0, _srcY);		\
+ } while (0)
+ 
+ #endif /* !ACCEL_CP */
+@@ -79,10 +100,10 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+     uint32_t dst_offset, dst_pitch, dst_format;
+     uint32_t txenable, colorpitch;
+     uint32_t blendcntl;
+-    int dstxoff, dstyoff, pixel_shift;
++    int dstxoff, dstyoff, pixel_shift, vtx_count;
+     BoxPtr pBox = REGION_RECTS(&pPriv->clip);
+     int nBox = REGION_NUM_RECTS(&pPriv->clip);
+-    VIDEO_PREAMBLE();
++    ACCEL_PREAMBLE();
+ 
+     pixel_shift = pPixmap->drawable.bitsPerPixel >> 4;
+ 
+@@ -106,22 +127,27 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+     dstyoff = 0;
+ #endif
+ 
+-    if (!info->XInited3D)
++    if (!info->accel_state->XInited3D)
+ 	RADEONInit3DEngine(pScrn);
+ 
+     /* we can probably improve this */
+-    BEGIN_VIDEO(2);
++    BEGIN_ACCEL(2);
+     if (IS_R300_3D || IS_R500_3D)
+-	OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
++	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
+     else
+-	OUT_VIDEO_REG(RADEON_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH);
++	OUT_ACCEL_REG(RADEON_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH);
+     /* We must wait for 3d to idle, in case source was just written as a dest. */
+-    OUT_VIDEO_REG(RADEON_WAIT_UNTIL,
++    OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ 		  RADEON_WAIT_HOST_IDLECLEAN |
+ 		  RADEON_WAIT_2D_IDLECLEAN |
+ 		  RADEON_WAIT_3D_IDLECLEAN |
+ 		  RADEON_WAIT_DMA_GUI_IDLE);
+-    FINISH_VIDEO();
++    FINISH_ACCEL();
++
++    if (pPriv->bicubic_enabled)
++	vtx_count = VTX_DWORD_COUNT_FILTER;
++    else
++	vtx_count = VTX_DWORD_COUNT;
+ 
+     if (IS_R300_3D || IS_R500_3D) {
+ 	uint32_t output_fmt;
+@@ -160,16 +186,17 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 	txformat1 |= R300_TX_FORMAT_YUV_TO_RGB_CLAMP;
+ 
+ 	txformat0 = ((((pPriv->w - 1) & 0x7ff) << R300_TXWIDTH_SHIFT) |
+-		     (((pPriv->h - 1) & 0x7ff) << R300_TXHEIGHT_SHIFT));
+-
+-	txformat0 |= R300_TXPITCH_EN;
++		     (((pPriv->h - 1) & 0x7ff) << R300_TXHEIGHT_SHIFT) |
++		     R300_TXPITCH_EN);
+ 
+-	info->texW[0] = pPriv->w;
+-	info->texH[0] = pPriv->h;
++	info->accel_state->texW[0] = pPriv->w;
++	info->accel_state->texH[0] = pPriv->h;
+ 
+ 	txfilter = (R300_TX_CLAMP_S(R300_TX_CLAMP_CLAMP_LAST) |
+ 		    R300_TX_CLAMP_T(R300_TX_CLAMP_CLAMP_LAST) |
+-		    R300_TX_MAG_FILTER_LINEAR | R300_TX_MIN_FILTER_LINEAR);
++		    R300_TX_MAG_FILTER_LINEAR |
++		    R300_TX_MIN_FILTER_LINEAR |
++		    (0 << R300_TX_ID_SHIFT));
+ 
+ 	/* pitch is in pixels */
+ 	txpitch = pPriv->src_pitch / 2;
+@@ -183,22 +210,58 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 
+ 	txoffset = pPriv->src_offset;
+ 
+-	BEGIN_VIDEO(6);
+-	OUT_VIDEO_REG(R300_TX_FILTER0_0, txfilter);
+-	OUT_VIDEO_REG(R300_TX_FILTER1_0, 0);
+-	OUT_VIDEO_REG(R300_TX_FORMAT0_0, txformat0);
+-	OUT_VIDEO_REG(R300_TX_FORMAT1_0, txformat1);
+-	OUT_VIDEO_REG(R300_TX_FORMAT2_0, txpitch);
+-	OUT_VIDEO_REG(R300_TX_OFFSET_0, txoffset);
+-	FINISH_VIDEO();
++	BEGIN_ACCEL(6);
++	OUT_ACCEL_REG(R300_TX_FILTER0_0, txfilter);
++	OUT_ACCEL_REG(R300_TX_FILTER1_0, 0);
++	OUT_ACCEL_REG(R300_TX_FORMAT0_0, txformat0);
++	OUT_ACCEL_REG(R300_TX_FORMAT1_0, txformat1);
++	OUT_ACCEL_REG(R300_TX_FORMAT2_0, txpitch);
++	OUT_ACCEL_REG(R300_TX_OFFSET_0, txoffset);
++	FINISH_ACCEL();
+ 
+ 	txenable = R300_TEX_0_ENABLE;
+ 
++	if (pPriv->bicubic_enabled) {
++		/* Size is 128x1 */
++		txformat0 = ((0x7f << R300_TXWIDTH_SHIFT) |
++			     (0x0 << R300_TXHEIGHT_SHIFT) |
++			     R300_TXPITCH_EN);
++		/* Format is 32-bit floats, 4bpp */
++		txformat1 = R300_EASY_TX_FORMAT(Z, Y, X, W, FL_R16G16B16A16);
++		/* Pitch is 127 (128-1) */
++		txpitch = 0x7f;
++		/* Tex filter */
++		txfilter = (R300_TX_CLAMP_S(R300_TX_CLAMP_WRAP) |
++			    R300_TX_CLAMP_T(R300_TX_CLAMP_WRAP) |
++			    R300_TX_MIN_FILTER_NEAREST |
++			    R300_TX_MAG_FILTER_NEAREST |
++			    (1 << R300_TX_ID_SHIFT));
++
++		BEGIN_ACCEL(6);
++		OUT_ACCEL_REG(R300_TX_FILTER0_1, txfilter);
++		OUT_ACCEL_REG(R300_TX_FILTER1_1, 0);
++		OUT_ACCEL_REG(R300_TX_FORMAT0_1, txformat0);
++		OUT_ACCEL_REG(R300_TX_FORMAT1_1, txformat1);
++		OUT_ACCEL_REG(R300_TX_FORMAT2_1, txpitch);
++		OUT_ACCEL_REG(R300_TX_OFFSET_1, pPriv->bicubic_src_offset);
++		FINISH_ACCEL();
++
++		/* Enable tex 1 */
++		txenable |= R300_TEX_1_ENABLE;
++	}
++
+ 	/* setup the VAP */
+-	if (info->has_tcl)
+-	    BEGIN_VIDEO(6);
+-	else
+-	    BEGIN_VIDEO(4);
++	if (info->accel_state->has_tcl) {
++	    if (pPriv->bicubic_enabled)
++		BEGIN_ACCEL(7);
++	    else
++		BEGIN_ACCEL(6);
++	} else {
++	    if (pPriv->bicubic_enabled)
++		BEGIN_ACCEL(5);
++	    else
++		BEGIN_ACCEL(4);
++	}
+ 
+ 	/* These registers define the number, type, and location of data submitted
+ 	 * to the PVS unit of GA input (when PVS is disabled)
+@@ -213,56 +276,90 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 	 * Textures 0-7
+ 	 * Fog
+ 	 */
+-	OUT_VIDEO_REG(R300_VAP_PROG_STREAM_CNTL_0,
+-		      ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) |
+-		       (0 << R300_SKIP_DWORDS_0_SHIFT) |
+-		       (0 << R300_DST_VEC_LOC_0_SHIFT) |
+-		       R300_SIGNED_0 |
+-		       (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) |
+-		       (0 << R300_SKIP_DWORDS_1_SHIFT) |
+-		       (6 << R300_DST_VEC_LOC_1_SHIFT) |
+-		       R300_LAST_VEC_1 |
+-		       R300_SIGNED_1));
++	if (pPriv->bicubic_enabled) {
++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_0,
++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) |
++			   (0 << R300_SKIP_DWORDS_0_SHIFT) |
++			   (0 << R300_DST_VEC_LOC_0_SHIFT) |
++			   R300_SIGNED_0 |
++			   (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) |
++			   (0 << R300_SKIP_DWORDS_1_SHIFT) |
++			   (6 << R300_DST_VEC_LOC_1_SHIFT) |
++			   R300_SIGNED_1));
++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_1,
++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_2_SHIFT) |
++			   (0 << R300_SKIP_DWORDS_2_SHIFT) |
++			   (7 << R300_DST_VEC_LOC_2_SHIFT) |
++			   R300_LAST_VEC_2 |
++			   R300_SIGNED_2));
++	} else {
++	    OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_0,
++			  ((R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_0_SHIFT) |
++			   (0 << R300_SKIP_DWORDS_0_SHIFT) |
++			   (0 << R300_DST_VEC_LOC_0_SHIFT) |
++			   R300_SIGNED_0 |
++			   (R300_DATA_TYPE_FLOAT_2 << R300_DATA_TYPE_1_SHIFT) |
++			   (0 << R300_SKIP_DWORDS_1_SHIFT) |
++			   (6 << R300_DST_VEC_LOC_1_SHIFT) |
++			   R300_LAST_VEC_1 |
++			   R300_SIGNED_1));
++	}
+ 
+ 	/* load the vertex shader
+ 	 * We pre-load vertex programs in RADEONInit3DEngine():
++	 * - exa mask/Xv bicubic
+ 	 * - exa no mask
+-	 * - exa mask
+ 	 * - Xv
+ 	 * Here we select the offset of the vertex program we want to use
+ 	 */
+-	if (info->has_tcl) {
+-	    OUT_VIDEO_REG(R300_VAP_PVS_CODE_CNTL_0,
+-			  ((5 << R300_PVS_FIRST_INST_SHIFT) |
+-			   (6 << R300_PVS_XYZW_VALID_INST_SHIFT) |
+-			   (6 << R300_PVS_LAST_INST_SHIFT)));
+-	    OUT_VIDEO_REG(R300_VAP_PVS_CODE_CNTL_1,
+-			  (6 << R300_PVS_LAST_VTX_SRC_INST_SHIFT));
++	if (info->accel_state->has_tcl) {
++	    if (pPriv->bicubic_enabled) {
++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0,
++			      ((0 << R300_PVS_FIRST_INST_SHIFT) |
++			       (2 << R300_PVS_XYZW_VALID_INST_SHIFT) |
++			       (2 << R300_PVS_LAST_INST_SHIFT)));
++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_1,
++			      (2 << R300_PVS_LAST_VTX_SRC_INST_SHIFT));
++	    } else {
++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0,
++			      ((5 << R300_PVS_FIRST_INST_SHIFT) |
++			       (6 << R300_PVS_XYZW_VALID_INST_SHIFT) |
++			       (6 << R300_PVS_LAST_INST_SHIFT)));
++		OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_1,
++			      (6 << R300_PVS_LAST_VTX_SRC_INST_SHIFT));
++	    }
+ 	}
+ 
+ 	/* Position and one set of 2 texture coordinates */
+-	OUT_VIDEO_REG(R300_VAP_OUT_VTX_FMT_0, R300_VTX_POS_PRESENT);
+-	OUT_VIDEO_REG(R300_VAP_OUT_VTX_FMT_1, (2 << R300_TEX_0_COMP_CNT_SHIFT));
+-	OUT_VIDEO_REG(R300_US_OUT_FMT_0, output_fmt);
+-	FINISH_VIDEO();
++	OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_0, R300_VTX_POS_PRESENT);
++	if (pPriv->bicubic_enabled)
++	    OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_1, ((2 << R300_TEX_0_COMP_CNT_SHIFT) |
++						   (2 << R300_TEX_1_COMP_CNT_SHIFT)));
++	else
++	    OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_1, (2 << R300_TEX_0_COMP_CNT_SHIFT));
++
++	OUT_ACCEL_REG(R300_US_OUT_FMT_0, output_fmt);
++	FINISH_ACCEL();
+ 
+ 	/* setup pixel shader */
+ 	if (IS_R300_3D) {
+-	    BEGIN_VIDEO(8);
++	    BEGIN_ACCEL(9);
+ 	    /* 2 components: 2 for tex0 */
+-	    OUT_VIDEO_REG(R300_RS_COUNT,
++	    OUT_ACCEL_REG(R300_RS_COUNT,
+ 			  ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) |
+ 			   R300_RS_COUNT_HIRES_EN));
+ 	    /* R300_INST_COUNT_RS - highest RS instruction used */
+-	    OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6));
++	    OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6));
+ 
+-	    OUT_VIDEO_REG(R300_US_CODE_OFFSET,
++	    OUT_ACCEL_REG(R300_US_PIXSIZE, 0); /* highest temp used */
++
++	    OUT_ACCEL_REG(R300_US_CODE_OFFSET,
+ 			  (R300_ALU_CODE_OFFSET(0) |
+ 			   R300_ALU_CODE_SIZE(1) |
+ 			   R300_TEX_CODE_OFFSET(0) |
+ 			   R300_TEX_CODE_SIZE(1)));
+ 
+-	    OUT_VIDEO_REG(R300_US_CODE_ADDR_3,
++	    OUT_ACCEL_REG(R300_US_CODE_ADDR_3,
+ 			  (R300_ALU_START(0) |
+ 			   R300_ALU_SIZE(0) |
+ 			   R300_TEX_START(0) |
+@@ -273,7 +370,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 
+ 	    /* ALU inst */
+ 	    /* RGB */
+-	    OUT_VIDEO_REG(R300_US_ALU_RGB_ADDR_0,
++	    OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR_0,
+ 			  (R300_ALU_RGB_ADDR0(0) |
+ 			   R300_ALU_RGB_ADDR1(0) |
+ 			   R300_ALU_RGB_ADDR2(0) |
+@@ -282,7 +379,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 					       R300_ALU_RGB_MASK_G |
+ 					       R300_ALU_RGB_MASK_B)) |
+ 			   R300_ALU_RGB_TARGET_A));
+-	    OUT_VIDEO_REG(R300_US_ALU_RGB_INST_0,
++	    OUT_ACCEL_REG(R300_US_ALU_RGB_INST_0,
+ 			  (R300_ALU_RGB_SEL_A(R300_ALU_RGB_SRC0_RGB) |
+ 			   R300_ALU_RGB_MOD_A(R300_ALU_RGB_MOD_NOP) |
+ 			   R300_ALU_RGB_SEL_B(R300_ALU_RGB_1_0) |
+@@ -293,7 +390,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 			   R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE) |
+ 			   R300_ALU_RGB_CLAMP));
+ 	    /* Alpha */
+-	    OUT_VIDEO_REG(R300_US_ALU_ALPHA_ADDR_0,
++	    OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0,
+ 			  (R300_ALU_ALPHA_ADDR0(0) |
+ 			   R300_ALU_ALPHA_ADDR1(0) |
+ 			   R300_ALU_ALPHA_ADDR2(0) |
+@@ -301,7 +398,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 			   R300_ALU_ALPHA_OMASK(R300_ALU_ALPHA_MASK_A) |
+ 			   R300_ALU_ALPHA_TARGET_A |
+ 			   R300_ALU_ALPHA_OMASK_W(R300_ALU_ALPHA_MASK_NONE)));
+-	    OUT_VIDEO_REG(R300_US_ALU_ALPHA_INST_0,
++	    OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST_0,
+ 			  (R300_ALU_ALPHA_SEL_A(R300_ALU_ALPHA_SRC0_A) |
+ 			   R300_ALU_ALPHA_MOD_A(R300_ALU_ALPHA_MOD_NOP) |
+ 			   R300_ALU_ALPHA_SEL_B(R300_ALU_ALPHA_1_0) |
+@@ -311,118 +408,591 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 			   R300_ALU_ALPHA_OP(R300_ALU_ALPHA_OP_MAD) |
+ 			   R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE) |
+ 			   R300_ALU_ALPHA_CLAMP));
+-	    FINISH_VIDEO();
++	    FINISH_ACCEL();
+ 	} else {
+-	    BEGIN_VIDEO(18);
+-	    /* 2 components: 2 for tex0 */
+-	    OUT_VIDEO_REG(R300_RS_COUNT,
+-			  ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) |
+-			   R300_RS_COUNT_HIRES_EN));
+-
+-	    /* R300_INST_COUNT_RS - highest RS instruction used */
+-	    OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6));
+-
+-	    OUT_VIDEO_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) |
+-					      R500_US_CODE_END_ADDR(1)));
+-	    OUT_VIDEO_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) |
+-					       R500_US_CODE_RANGE_SIZE(1)));
+-	    OUT_VIDEO_REG(R500_US_CODE_OFFSET, 0);
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_INDEX, 0);
+-
+-	    /* tex inst */
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
+-						   R500_INST_TEX_SEM_WAIT |
+-						   R500_INST_RGB_WMASK_R |
+-						   R500_INST_RGB_WMASK_G |
+-						   R500_INST_RGB_WMASK_B |
+-						   R500_INST_ALPHA_WMASK |
+-						   R500_INST_RGB_CLAMP |
+-						   R500_INST_ALPHA_CLAMP));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
+-						   R500_TEX_INST_LD |
+-						   R500_TEX_SEM_ACQUIRE |
+-						   R500_TEX_IGNORE_UNCOVERED));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) |
+-						   R500_TEX_SRC_S_SWIZ_R |
+-						   R500_TEX_SRC_T_SWIZ_G |
+-						   R500_TEX_DST_ADDR(0) |
+-						   R500_TEX_DST_R_SWIZ_R |
+-						   R500_TEX_DST_G_SWIZ_G |
+-						   R500_TEX_DST_B_SWIZ_B |
+-						   R500_TEX_DST_A_SWIZ_A));
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_DX_ADDR(0) |
+-						   R500_DX_S_SWIZ_R |
+-						   R500_DX_T_SWIZ_R |
+-						   R500_DX_R_SWIZ_R |
+-						   R500_DX_Q_SWIZ_R |
+-						   R500_DY_ADDR(0) |
+-						   R500_DY_S_SWIZ_R |
+-						   R500_DY_T_SWIZ_R |
+-						   R500_DY_R_SWIZ_R |
+-						   R500_DY_Q_SWIZ_R));
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
+-
+-	    /* ALU inst */
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT |
+-						   R500_INST_TEX_SEM_WAIT |
+-						   R500_INST_LAST |
+-						   R500_INST_RGB_OMASK_R |
+-						   R500_INST_RGB_OMASK_G |
+-						   R500_INST_RGB_OMASK_B |
+-						   R500_INST_ALPHA_OMASK |
+-						   R500_INST_RGB_CLAMP |
+-						   R500_INST_ALPHA_CLAMP));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
+-						   R500_RGB_ADDR1(0) |
+-						   R500_RGB_ADDR1_CONST |
+-						   R500_RGB_ADDR2(0) |
+-						   R500_RGB_ADDR2_CONST));
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
+-						   R500_ALPHA_ADDR1(0) |
+-						   R500_ALPHA_ADDR1_CONST |
+-						   R500_ALPHA_ADDR2(0) |
+-						   R500_ALPHA_ADDR2_CONST));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 |
+-						   R500_ALU_RGB_R_SWIZ_A_R |
+-						   R500_ALU_RGB_G_SWIZ_A_G |
+-						   R500_ALU_RGB_B_SWIZ_A_B |
+-						   R500_ALU_RGB_SEL_B_SRC0 |
+-						   R500_ALU_RGB_R_SWIZ_B_1 |
+-						   R500_ALU_RGB_B_SWIZ_B_1 |
+-						   R500_ALU_RGB_G_SWIZ_B_1));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_OP_MAD |
+-						   R500_ALPHA_SWIZ_A_A |
+-						   R500_ALPHA_SWIZ_B_1));
+-
+-	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_OP_MAD |
+-						   R500_ALU_RGBA_R_SWIZ_0 |
+-						   R500_ALU_RGBA_G_SWIZ_0 |
+-						   R500_ALU_RGBA_B_SWIZ_0 |
+-						   R500_ALU_RGBA_A_SWIZ_0));
+-	    FINISH_VIDEO();
++	    if (pPriv->bicubic_enabled) {
++		BEGIN_ACCEL(7);
++
++		/* 4 components: 2 for tex0 and 2 for tex1 */
++		OUT_ACCEL_REG(R300_RS_COUNT,
++			      ((4 << R300_RS_COUNT_IT_COUNT_SHIFT) |
++			       R300_RS_COUNT_HIRES_EN));
++
++		/* R300_INST_COUNT_RS - highest RS instruction used */
++		OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1) | R300_TX_OFFSET_RS(6));
++
++		/* Pixel stack frame size. */
++		OUT_ACCEL_REG(R300_US_PIXSIZE, 5);
++
++		/* FP length. */
++		OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) |
++						  R500_US_CODE_END_ADDR(13)));
++		OUT_ACCEL_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) |
++						   R500_US_CODE_RANGE_SIZE(13)));
++
++		/* Prepare for FP emission. */
++		OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0));
++		FINISH_ACCEL();
++
++		BEGIN_ACCEL(89);
++		/* Pixel shader.
++		 * I've gone ahead and annotated each instruction, since this
++		 * thing is MASSIVE. :3
++		 * Note: In order to avoid buggies with temps and multiple
++		 * inputs, all temps are offset by 2. temp0 -> register2. */
++
++		/* TEX temp2, input1.xxxx, tex1, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(1) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(1) |
++						       R500_TEX_SRC_S_SWIZ_R |
++						       R500_TEX_SRC_T_SWIZ_R |
++						       R500_TEX_SRC_R_SWIZ_R |
++						       R500_TEX_SRC_Q_SWIZ_R |
++						       R500_TEX_DST_ADDR(2) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* TEX temp5, input1.yyyy, tex1, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(1) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_SEM_ACQUIRE |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(1) |
++						       R500_TEX_SRC_S_SWIZ_G |
++						       R500_TEX_SRC_T_SWIZ_G |
++						       R500_TEX_SRC_R_SWIZ_G |
++						       R500_TEX_SRC_Q_SWIZ_G |
++						       R500_TEX_DST_ADDR(5) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* MUL temp4, const0.x0x0, temp2.yyxx */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_ADDR0_CONST |
++						       R500_RGB_ADDR1(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_ADDR0_CONST |
++						       R500_ALPHA_ADDR1(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 |
++						       R500_ALU_RGB_R_SWIZ_A_R |
++						       R500_ALU_RGB_G_SWIZ_A_0 |
++						       R500_ALU_RGB_B_SWIZ_A_R |
++						       R500_ALU_RGB_SEL_B_SRC1 |
++						       R500_ALU_RGB_R_SWIZ_B_G |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_R));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(4) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC0 |
++						       R500_ALPHA_SWIZ_A_0 |
++						       R500_ALPHA_SEL_B_SRC1 |
++						       R500_ALPHA_SWIZ_B_R));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(4) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_R_SWIZ_0 |
++						       R500_ALU_RGBA_G_SWIZ_0 |
++						       R500_ALU_RGBA_B_SWIZ_0 |
++						       R500_ALU_RGBA_A_SWIZ_0));
++
++		/* MAD temp3, const0.0y0y, temp5.xxxx, temp4 */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_ADDR0_CONST |
++						       R500_RGB_ADDR1(5) |
++						       R500_RGB_ADDR2(4)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_ADDR0_CONST |
++						       R500_ALPHA_ADDR1(5) |
++						       R500_ALPHA_ADDR2(4)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 |
++						       R500_ALU_RGB_R_SWIZ_A_0 |
++						       R500_ALU_RGB_G_SWIZ_A_G |
++						       R500_ALU_RGB_B_SWIZ_A_0 |
++						       R500_ALU_RGB_SEL_B_SRC1 |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_R |
++						       R500_ALU_RGB_B_SWIZ_B_R));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC0 |
++						       R500_ALPHA_SWIZ_A_G |
++						       R500_ALPHA_SEL_B_SRC1 |
++						       R500_ALPHA_SWIZ_B_R));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC2 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_B |
++						       R500_ALU_RGBA_A_SWIZ_A));
++
++		/* ADD temp3, temp3, input0.xyxy */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR1(3) |
++						       R500_RGB_ADDR2(0)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR1(3) |
++						       R500_ALPHA_ADDR2(0)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_R_SWIZ_A_1 |
++						       R500_ALU_RGB_G_SWIZ_A_1 |
++						       R500_ALU_RGB_B_SWIZ_A_1 |
++						       R500_ALU_RGB_SEL_B_SRC1 |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SWIZ_A_1 |
++						       R500_ALPHA_SEL_B_SRC1 |
++						       R500_ALPHA_SWIZ_B_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC2 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_R |
++						       R500_ALU_RGBA_A_SWIZ_G));
++
++		/* TEX temp1, temp3.zwxy, tex0, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(3) |
++						       R500_TEX_SRC_S_SWIZ_B |
++						       R500_TEX_SRC_T_SWIZ_A |
++						       R500_TEX_SRC_R_SWIZ_R |
++						       R500_TEX_SRC_Q_SWIZ_G |
++						       R500_TEX_DST_ADDR(1) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* TEX temp3, temp3.xyzw, tex0, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_SEM_ACQUIRE |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(3) |
++						       R500_TEX_SRC_S_SWIZ_R |
++						       R500_TEX_SRC_T_SWIZ_G |
++						       R500_TEX_SRC_R_SWIZ_B |
++						       R500_TEX_SRC_Q_SWIZ_A |
++						       R500_TEX_DST_ADDR(3) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* MAD temp4, const1.0y0y, temp5.yyyy, temp4 */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_ADDR0_CONST |
++						       R500_RGB_ADDR1(5) |
++						       R500_RGB_ADDR2(4)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_ADDR0_CONST |
++						       R500_ALPHA_ADDR1(5) |
++						       R500_ALPHA_ADDR2(4)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 |
++						       R500_ALU_RGB_R_SWIZ_A_0 |
++						       R500_ALU_RGB_G_SWIZ_A_G |
++						       R500_ALU_RGB_B_SWIZ_A_0 |
++						       R500_ALU_RGB_SEL_B_SRC1 |
++						       R500_ALU_RGB_R_SWIZ_B_G |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_G));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(4) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC0 |
++						       R500_ALPHA_SWIZ_A_G |
++						       R500_ALPHA_SEL_B_SRC1 |
++						       R500_ALPHA_SWIZ_B_G));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(4) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC2 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_B |
++						       R500_ALU_RGBA_A_SWIZ_A));
++
++		/* ADD temp0, temp4, input0.xyxy */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR1(4) |
++						       R500_RGB_ADDR2(0)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR1(4) |
++						       R500_ALPHA_ADDR2(0)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_R_SWIZ_A_1 |
++						       R500_ALU_RGB_G_SWIZ_A_1 |
++						       R500_ALU_RGB_B_SWIZ_A_1 |
++						       R500_ALU_RGB_SEL_B_SRC1 |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SWIZ_A_1 |
++						       R500_ALPHA_SEL_B_SRC1 |
++						       R500_ALPHA_SWIZ_B_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC2 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_R |
++						       R500_ALU_RGBA_A_SWIZ_G));
++
++		/* TEX temp4, temp0.zwzw, tex0, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) |
++						       R500_TEX_SRC_S_SWIZ_B |
++						       R500_TEX_SRC_T_SWIZ_A |
++						       R500_TEX_SRC_R_SWIZ_B |
++						       R500_TEX_SRC_Q_SWIZ_A |
++						       R500_TEX_DST_ADDR(4) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* TEX temp0, temp0.xyzw, tex0, 1D */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						   R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_SEM_ACQUIRE |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) |
++						       R500_TEX_SRC_S_SWIZ_R |
++						       R500_TEX_SRC_T_SWIZ_G |
++						       R500_TEX_SRC_R_SWIZ_B |
++						       R500_TEX_SRC_Q_SWIZ_A |
++						       R500_TEX_DST_ADDR(0) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* LRP temp3, temp2.zzzz, temp1, temp3 ->
++		 * - PRESUB temps, temp1 - temp3
++		 * - MAD temp2.zzzz, temps, temp3 */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(3) |
++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 |
++						       R500_RGB_ADDR1(1) |
++						       R500_RGB_ADDR2(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(3) |
++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 |
++						       R500_ALPHA_ADDR1(1) |
++						       R500_ALPHA_ADDR2(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 |
++						       R500_ALU_RGB_R_SWIZ_A_B |
++						       R500_ALU_RGB_G_SWIZ_A_B |
++						       R500_ALU_RGB_B_SWIZ_A_B |
++						       R500_ALU_RGB_SEL_B_SRCP |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(3) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC2 |
++						       R500_ALPHA_SWIZ_A_B |
++						       R500_ALPHA_SEL_B_SRCP |
++						       R500_ALPHA_SWIZ_B_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(3) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC0 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_B |
++						       R500_ALU_RGBA_A_SWIZ_A));
++
++		/* LRP temp0, temp2.zzzz, temp4, temp0 ->
++		 * - PRESUB temps, temp4 - temp1
++		 * - MAD temp2.zzzz, temps, temp0 */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_ALU |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 |
++						       R500_RGB_ADDR1(4) |
++						       R500_RGB_ADDR2(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 |
++						       R500_ALPHA_ADDR1(4) |
++						       R500_ALPHA_ADDR2(2)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 |
++						       R500_ALU_RGB_R_SWIZ_A_B |
++						       R500_ALU_RGB_G_SWIZ_A_B |
++						       R500_ALU_RGB_B_SWIZ_A_B |
++						       R500_ALU_RGB_SEL_B_SRCP |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC2 |
++						       R500_ALPHA_SWIZ_A_B |
++						       R500_ALPHA_SEL_B_SRCP |
++						       R500_ALPHA_SWIZ_B_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC0 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_B |
++						       R500_ALU_RGBA_A_SWIZ_A));
++
++		/* LRP output, temp5.zzzz, temp3, temp0 ->
++		 * - PRESUB temps, temp3 - temp0
++		 * - MAD temp5.zzzz, temps, temp0 */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT |
++						       R500_INST_LAST |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK |
++						       R500_INST_RGB_OMASK_R |
++						       R500_INST_RGB_OMASK_G |
++						       R500_INST_RGB_OMASK_B |
++						       R500_INST_ALPHA_OMASK));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_SRCP_OP_RGB1_MINUS_RGB0 |
++						       R500_RGB_ADDR1(3) |
++						       R500_RGB_ADDR2(5)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_SRCP_OP_A1_MINUS_A0 |
++						       R500_ALPHA_ADDR1(3) |
++						       R500_ALPHA_ADDR2(5)));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC2 |
++						       R500_ALU_RGB_R_SWIZ_A_B |
++						       R500_ALU_RGB_G_SWIZ_A_B |
++						       R500_ALU_RGB_B_SWIZ_A_B |
++						       R500_ALU_RGB_SEL_B_SRCP |
++						       R500_ALU_RGB_R_SWIZ_B_R |
++						       R500_ALU_RGB_G_SWIZ_B_G |
++						       R500_ALU_RGB_B_SWIZ_B_B));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDRD(0) |
++						       R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SEL_A_SRC2 |
++						       R500_ALPHA_SWIZ_A_B |
++						       R500_ALPHA_SEL_B_SRCP |
++						       R500_ALPHA_SWIZ_B_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_ADDRD(0) |
++						       R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_SEL_C_SRC0 |
++						       R500_ALU_RGBA_R_SWIZ_R |
++						       R500_ALU_RGBA_G_SWIZ_G |
++						       R500_ALU_RGBA_B_SWIZ_B |
++						       R500_ALU_RGBA_A_SWIZ_A));
++
++		/* Shader constants. */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_CONST_INDEX(0));
++
++		/* const0 = {1 / texture[0].width, 0, 0, 0} */
++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, (1.0/(float)pPriv->w));
++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, (1.0/(float)pPriv->h));
++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, 0x0);
++		OUT_ACCEL_REG_F(R500_GA_US_VECTOR_DATA, 0x0);
++
++		FINISH_ACCEL();
++
++	    } else {
++		BEGIN_ACCEL(19);
++		/* 2 components: 2 for tex0 */
++		OUT_ACCEL_REG(R300_RS_COUNT,
++			      ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) |
++			       R300_RS_COUNT_HIRES_EN));
++
++		/* R300_INST_COUNT_RS - highest RS instruction used */
++		OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6));
++
++		/* Pixel stack frame size. */
++		OUT_ACCEL_REG(R300_US_PIXSIZE, 0); /* highest temp used */
++
++		/* FP length. */
++		OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) |
++						  R500_US_CODE_END_ADDR(1)));
++		OUT_ACCEL_REG(R500_US_CODE_RANGE, (R500_US_CODE_RANGE_ADDR(0) |
++						   R500_US_CODE_RANGE_SIZE(1)));
++
++		/* Prepare for FP emission. */
++		OUT_ACCEL_REG(R500_US_CODE_OFFSET, 0);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_INDEX, R500_US_VECTOR_INST_INDEX(0));
++
++		/* tex inst */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_TEX |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_RGB_WMASK_R |
++						       R500_INST_RGB_WMASK_G |
++						       R500_INST_RGB_WMASK_B |
++						       R500_INST_ALPHA_WMASK |
++						       R500_INST_RGB_CLAMP |
++						       R500_INST_ALPHA_CLAMP));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
++						       R500_TEX_INST_LD |
++						       R500_TEX_SEM_ACQUIRE |
++						       R500_TEX_IGNORE_UNCOVERED));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_SRC_ADDR(0) |
++						       R500_TEX_SRC_S_SWIZ_R |
++						       R500_TEX_SRC_T_SWIZ_G |
++						       R500_TEX_DST_ADDR(0) |
++						       R500_TEX_DST_R_SWIZ_R |
++						       R500_TEX_DST_G_SWIZ_G |
++						       R500_TEX_DST_B_SWIZ_B |
++						       R500_TEX_DST_A_SWIZ_A));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_DX_ADDR(0) |
++						       R500_DX_S_SWIZ_R |
++						       R500_DX_T_SWIZ_R |
++						       R500_DX_R_SWIZ_R |
++						       R500_DX_Q_SWIZ_R |
++						       R500_DY_ADDR(0) |
++						       R500_DY_S_SWIZ_R |
++						       R500_DY_T_SWIZ_R |
++						       R500_DY_R_SWIZ_R |
++						       R500_DY_Q_SWIZ_R));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, 0x00000000);
++
++		/* ALU inst */
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_INST_TYPE_OUT |
++						       R500_INST_TEX_SEM_WAIT |
++						       R500_INST_LAST |
++						       R500_INST_RGB_OMASK_R |
++						       R500_INST_RGB_OMASK_G |
++						       R500_INST_RGB_OMASK_B |
++						       R500_INST_ALPHA_OMASK |
++						       R500_INST_RGB_CLAMP |
++						       R500_INST_ALPHA_CLAMP));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
++						       R500_RGB_ADDR1(0) |
++						       R500_RGB_ADDR1_CONST |
++						       R500_RGB_ADDR2(0) |
++						       R500_RGB_ADDR2_CONST));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_ADDR0(0) |
++						       R500_ALPHA_ADDR1(0) |
++						       R500_ALPHA_ADDR1_CONST |
++						       R500_ALPHA_ADDR2(0) |
++						       R500_ALPHA_ADDR2_CONST));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGB_SEL_A_SRC0 |
++						       R500_ALU_RGB_R_SWIZ_A_R |
++						       R500_ALU_RGB_G_SWIZ_A_G |
++						       R500_ALU_RGB_B_SWIZ_A_B |
++						       R500_ALU_RGB_SEL_B_SRC0 |
++						       R500_ALU_RGB_R_SWIZ_B_1 |
++						       R500_ALU_RGB_B_SWIZ_B_1 |
++						       R500_ALU_RGB_G_SWIZ_B_1));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALPHA_OP_MAD |
++						       R500_ALPHA_SWIZ_A_A |
++						       R500_ALPHA_SWIZ_B_1));
++		OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_ALU_RGBA_OP_MAD |
++						       R500_ALU_RGBA_R_SWIZ_0 |
++						       R500_ALU_RGBA_G_SWIZ_0 |
++						       R500_ALU_RGBA_B_SWIZ_0 |
++						       R500_ALU_RGBA_A_SWIZ_0));
++		FINISH_ACCEL();
++	    }
+ 	}
+ 
+-	BEGIN_VIDEO(5);
+-	OUT_VIDEO_REG(R300_TX_INVALTAGS, 0);
+-	OUT_VIDEO_REG(R300_TX_ENABLE, txenable);
++	BEGIN_ACCEL(6);
++	OUT_ACCEL_REG(R300_TX_INVALTAGS, 0);
++	OUT_ACCEL_REG(R300_TX_ENABLE, txenable);
+ 
+-	OUT_VIDEO_REG(R300_RB3D_COLOROFFSET0, dst_offset);
+-	OUT_VIDEO_REG(R300_RB3D_COLORPITCH0, colorpitch);
++	OUT_ACCEL_REG(R300_RB3D_COLOROFFSET0, dst_offset);
++	OUT_ACCEL_REG(R300_RB3D_COLORPITCH0, colorpitch);
+ 
+ 	blendcntl = RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO;
+ 	/* no need to enable blending */
+-	OUT_VIDEO_REG(R300_RB3D_BLENDCNTL, blendcntl);
+-	FINISH_VIDEO();
++	OUT_ACCEL_REG(R300_RB3D_BLENDCNTL, blendcntl);
+ 
+-	BEGIN_VIDEO(1);
+-	OUT_VIDEO_REG(R300_VAP_VTX_SIZE, VTX_DWORD_COUNT);
+-	FINISH_VIDEO();
++	OUT_ACCEL_REG(R300_VAP_VTX_SIZE, vtx_count);
++	FINISH_ACCEL();
+ 
+     } else {
+ 
+@@ -453,20 +1023,20 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 	if (RADEONTilingEnabled(pScrn, pPixmap))
+ 	    colorpitch |= RADEON_COLOR_TILE_ENABLE;
+ 
+-	BEGIN_VIDEO(5);
++	BEGIN_ACCEL(5);
+ 
+-	OUT_VIDEO_REG(RADEON_PP_CNTL,
+-		    RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE);
+-	OUT_VIDEO_REG(RADEON_RB3D_CNTL,
+-		    dst_format | RADEON_ALPHA_BLEND_ENABLE);
+-	OUT_VIDEO_REG(RADEON_RB3D_COLOROFFSET, dst_offset);
++	OUT_ACCEL_REG(RADEON_PP_CNTL,
++		      RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE);
++	OUT_ACCEL_REG(RADEON_RB3D_CNTL,
++		      dst_format | RADEON_ALPHA_BLEND_ENABLE);
++	OUT_ACCEL_REG(RADEON_RB3D_COLOROFFSET, dst_offset);
+ 
+-	OUT_VIDEO_REG(RADEON_RB3D_COLORPITCH, colorpitch);
++	OUT_ACCEL_REG(RADEON_RB3D_COLORPITCH, colorpitch);
+ 
+-	OUT_VIDEO_REG(RADEON_RB3D_BLENDCNTL,
+-		    RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO);
++	OUT_ACCEL_REG(RADEON_RB3D_BLENDCNTL,
++		      RADEON_SRC_BLEND_GL_ONE | RADEON_DST_BLEND_GL_ZERO);
+ 
+-	FINISH_VIDEO();
++	FINISH_ACCEL();
+ 
+ 
+ 	if ((info->ChipFamily == CHIP_FAMILY_RV250) ||
+@@ -474,77 +1044,82 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 	    (info->ChipFamily == CHIP_FAMILY_RS300) ||
+ 	    (info->ChipFamily == CHIP_FAMILY_R200)) {
+ 
+-	    info->texW[0] = pPriv->w;
+-	    info->texH[0] = pPriv->h;
+-
+-	    BEGIN_VIDEO(12);
+-
+-	    OUT_VIDEO_REG(R200_SE_VTX_FMT_0, R200_VTX_XY);
+-	    OUT_VIDEO_REG(R200_SE_VTX_FMT_1,
+-			(2 << R200_VTX_TEX0_COMP_CNT_SHIFT));
+-
+-	    OUT_VIDEO_REG(R200_PP_TXFILTER_0,
+-			R200_MAG_FILTER_LINEAR |
+-			R200_MIN_FILTER_LINEAR |
+-			R200_YUV_TO_RGB);
+-	    OUT_VIDEO_REG(R200_PP_TXFORMAT_0, txformat);
+-	    OUT_VIDEO_REG(R200_PP_TXFORMAT_X_0, 0);
+-	    OUT_VIDEO_REG(R200_PP_TXSIZE_0,
+-			(pPriv->w - 1) |
+-			((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT));
+-	    OUT_VIDEO_REG(R200_PP_TXPITCH_0, pPriv->src_pitch - 32);
+-
+-	    OUT_VIDEO_REG(R200_PP_TXOFFSET_0, pPriv->src_offset);
+-
+-	    OUT_VIDEO_REG(R200_PP_TXCBLEND_0,
+-			R200_TXC_ARG_A_ZERO |
+-			R200_TXC_ARG_B_ZERO |
+-			R200_TXC_ARG_C_R0_COLOR |
+-			R200_TXC_OP_MADD);
+-	    OUT_VIDEO_REG(R200_PP_TXCBLEND2_0,
+-			R200_TXC_CLAMP_0_1 | R200_TXC_OUTPUT_REG_R0);
+-	    OUT_VIDEO_REG(R200_PP_TXABLEND_0,
+-			R200_TXA_ARG_A_ZERO |
+-			R200_TXA_ARG_B_ZERO |
+-			R200_TXA_ARG_C_R0_ALPHA |
+-			R200_TXA_OP_MADD);
+-	    OUT_VIDEO_REG(R200_PP_TXABLEND2_0,
+-			R200_TXA_CLAMP_0_1 | R200_TXA_OUTPUT_REG_R0);
+-	    FINISH_VIDEO();
++	    info->accel_state->texW[0] = pPriv->w;
++	    info->accel_state->texH[0] = pPriv->h;
++
++	    BEGIN_ACCEL(12);
++
++	    OUT_ACCEL_REG(R200_SE_VTX_FMT_0, R200_VTX_XY);
++	    OUT_ACCEL_REG(R200_SE_VTX_FMT_1,
++			  (2 << R200_VTX_TEX0_COMP_CNT_SHIFT));
++
++	    OUT_ACCEL_REG(R200_PP_TXFILTER_0,
++			  R200_MAG_FILTER_LINEAR |
++			  R200_MIN_FILTER_LINEAR |
++			  R200_CLAMP_S_CLAMP_LAST |
++			  R200_CLAMP_T_CLAMP_LAST |
++			  R200_YUV_TO_RGB);
++	    OUT_ACCEL_REG(R200_PP_TXFORMAT_0, txformat);
++	    OUT_ACCEL_REG(R200_PP_TXFORMAT_X_0, 0);
++	    OUT_ACCEL_REG(R200_PP_TXSIZE_0,
++			  (pPriv->w - 1) |
++			  ((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT));
++	    OUT_ACCEL_REG(R200_PP_TXPITCH_0, pPriv->src_pitch - 32);
++
++	    OUT_ACCEL_REG(R200_PP_TXOFFSET_0, pPriv->src_offset);
++
++	    OUT_ACCEL_REG(R200_PP_TXCBLEND_0,
++			  R200_TXC_ARG_A_ZERO |
++			  R200_TXC_ARG_B_ZERO |
++			  R200_TXC_ARG_C_R0_COLOR |
++			  R200_TXC_OP_MADD);
++	    OUT_ACCEL_REG(R200_PP_TXCBLEND2_0,
++			  R200_TXC_CLAMP_0_1 | R200_TXC_OUTPUT_REG_R0);
++	    OUT_ACCEL_REG(R200_PP_TXABLEND_0,
++			  R200_TXA_ARG_A_ZERO |
++			  R200_TXA_ARG_B_ZERO |
++			  R200_TXA_ARG_C_R0_ALPHA |
++			  R200_TXA_OP_MADD);
++	    OUT_ACCEL_REG(R200_PP_TXABLEND2_0,
++			  R200_TXA_CLAMP_0_1 | R200_TXA_OUTPUT_REG_R0);
++	    FINISH_ACCEL();
+ 	} else {
+ 
+-	    info->texW[0] = 1;
+-	    info->texH[0] = 1;
+-
+-	    BEGIN_VIDEO(8);
+-
+-	    OUT_VIDEO_REG(RADEON_SE_VTX_FMT, RADEON_SE_VTX_FMT_XY |
+-			RADEON_SE_VTX_FMT_ST0);
+-
+-	    OUT_VIDEO_REG(RADEON_PP_TXFILTER_0, RADEON_MAG_FILTER_LINEAR |
+-			RADEON_MIN_FILTER_LINEAR |
+-			RADEON_YUV_TO_RGB);
+-	    OUT_VIDEO_REG(RADEON_PP_TXFORMAT_0, txformat);
+-	    OUT_VIDEO_REG(RADEON_PP_TXOFFSET_0, pPriv->src_offset);
+-	    OUT_VIDEO_REG(RADEON_PP_TXCBLEND_0,
+-			RADEON_COLOR_ARG_A_ZERO |
+-			RADEON_COLOR_ARG_B_ZERO |
+-			RADEON_COLOR_ARG_C_T0_COLOR |
+-			RADEON_BLEND_CTL_ADD |
+-			RADEON_CLAMP_TX);
+-	    OUT_VIDEO_REG(RADEON_PP_TXABLEND_0,
+-			RADEON_ALPHA_ARG_A_ZERO |
+-			RADEON_ALPHA_ARG_B_ZERO |
+-			RADEON_ALPHA_ARG_C_T0_ALPHA |
+-			RADEON_BLEND_CTL_ADD |
+-			RADEON_CLAMP_TX);
+-
+-	    OUT_VIDEO_REG(RADEON_PP_TEX_SIZE_0,
+-			(pPriv->w - 1) |
+-			((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT));
+-	    OUT_VIDEO_REG(RADEON_PP_TEX_PITCH_0,
+-			pPriv->src_pitch - 32);
+-	    FINISH_VIDEO();
++	    info->accel_state->texW[0] = 1;
++	    info->accel_state->texH[0] = 1;
++
++	    BEGIN_ACCEL(8);
++
++	    OUT_ACCEL_REG(RADEON_SE_VTX_FMT, (RADEON_SE_VTX_FMT_XY |
++					      RADEON_SE_VTX_FMT_ST0));
++
++	    OUT_ACCEL_REG(RADEON_PP_TXFILTER_0,
++			  RADEON_MAG_FILTER_LINEAR |
++			  RADEON_MIN_FILTER_LINEAR |
++			  RADEON_CLAMP_S_CLAMP_LAST |
++			  RADEON_CLAMP_T_CLAMP_LAST |
++			  RADEON_YUV_TO_RGB);
++	    OUT_ACCEL_REG(RADEON_PP_TXFORMAT_0, txformat);
++	    OUT_ACCEL_REG(RADEON_PP_TXOFFSET_0, pPriv->src_offset);
++	    OUT_ACCEL_REG(RADEON_PP_TXCBLEND_0,
++			  RADEON_COLOR_ARG_A_ZERO |
++			  RADEON_COLOR_ARG_B_ZERO |
++			  RADEON_COLOR_ARG_C_T0_COLOR |
++			  RADEON_BLEND_CTL_ADD |
++			  RADEON_CLAMP_TX);
++	    OUT_ACCEL_REG(RADEON_PP_TXABLEND_0,
++			  RADEON_ALPHA_ARG_A_ZERO |
++			  RADEON_ALPHA_ARG_B_ZERO |
++			  RADEON_ALPHA_ARG_C_T0_ALPHA |
++			  RADEON_BLEND_CTL_ADD |
++			  RADEON_CLAMP_TX);
++
++	    OUT_ACCEL_REG(RADEON_PP_TEX_SIZE_0,
++			  (pPriv->w - 1) |
++			  ((pPriv->h - 1) << RADEON_TEX_VSIZE_SHIFT));
++	    OUT_ACCEL_REG(RADEON_PP_TEX_PITCH_0,
++			  pPriv->src_pitch - 32);
++	    FINISH_ACCEL();
+ 	}
+     }
+ 
+@@ -582,77 +1157,96 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
+ 
+ #ifdef ACCEL_CP
+ 	if (info->ChipFamily < CHIP_FAMILY_R200) {
+-	    BEGIN_RING(4 * VTX_DWORD_COUNT + 3);
++	    BEGIN_RING(3 * vtx_count + 3);
+ 	    OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_3D_DRAW_IMMD,
+-				4 * VTX_DWORD_COUNT + 1));
++				3 * vtx_count + 1));
+ 	    OUT_RING(RADEON_CP_VC_FRMT_XY |
+ 		     RADEON_CP_VC_FRMT_ST0);
+-	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN |
++	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_RECT_LIST |
+ 		     RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ 		     RADEON_CP_VC_CNTL_MAOS_ENABLE |
+ 		     RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE |
+-		     (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
++		     (3 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+ 	} else {
+ 	    if (IS_R300_3D || IS_R500_3D)
+-		BEGIN_RING(4 * VTX_DWORD_COUNT + 4);
++		BEGIN_RING(4 * vtx_count + 4);
+ 	    else
+-		BEGIN_RING(4 * VTX_DWORD_COUNT + 2);
++		BEGIN_RING(4 * vtx_count + 2);
+ 	    OUT_RING(CP_PACKET3(R200_CP_PACKET3_3D_DRAW_IMMD_2,
+-				4 * VTX_DWORD_COUNT));
+-	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_FAN |
++				4 * vtx_count));
++	    OUT_RING(RADEON_CP_VC_CNTL_PRIM_TYPE_QUAD_LIST |
+ 		     RADEON_CP_VC_CNTL_PRIM_WALK_RING |
+ 		     (4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
+ 	}
+ #else /* ACCEL_CP */
+ 	if (IS_R300_3D || IS_R500_3D)
+-	    BEGIN_VIDEO(2 + VTX_DWORD_COUNT * 4);
++	    BEGIN_ACCEL(2 + vtx_count * 4);
++	else if (info->ChipFamily < CHIP_FAMILY_R200)
++	    BEGIN_ACCEL(1 + vtx_count * 3);
+ 	else
+-	    BEGIN_VIDEO(1 + VTX_DWORD_COUNT * 4);
++	    BEGIN_ACCEL(1 + vtx_count * 4);
+ 
+-	if (info->ChipFamily < CHIP_FAMILY_R200) {
+-	    OUT_VIDEO_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_TRIANGLE_FAN |
++	if (info->ChipFamily < CHIP_FAMILY_R200)
++	    OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_RECTANGLE_LIST |
+ 					      RADEON_VF_PRIM_WALK_DATA |
+ 					      RADEON_VF_RADEON_MODE |
+-					      4 << RADEON_VF_NUM_VERTICES_SHIFT));
+-	} else {
+-	    OUT_VIDEO_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST |
++					      (3 << RADEON_VF_NUM_VERTICES_SHIFT)));
++	else
++	    OUT_ACCEL_REG(RADEON_SE_VF_CNTL, (RADEON_VF_PRIM_TYPE_QUAD_LIST |
+ 					      RADEON_VF_PRIM_WALK_DATA |
+-					      4 << RADEON_VF_NUM_VERTICES_SHIFT));
+-	}
+-#endif
++					      (4 << RADEON_VF_NUM_VERTICES_SHIFT)));
+ 
+-	VTX_OUT((float)dstX,                                      (float)dstY,
+-		xFixedToFloat(srcTopLeft.x) / info->texW[0],      xFixedToFloat(srcTopLeft.y) / info->texH[0]);
+-	VTX_OUT((float)dstX,                                      (float)(dstY + dsth),
+-		xFixedToFloat(srcBottomLeft.x) / info->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->texH[0]);
+-	VTX_OUT((float)(dstX + dstw),                                (float)(dstY + dsth),
+-		xFixedToFloat(srcBottomRight.x) / info->texW[0],  xFixedToFloat(srcBottomRight.y) / info->texH[0]);
+-	VTX_OUT((float)(dstX + dstw),                                (float)dstY,
+-		xFixedToFloat(srcTopRight.x) / info->texW[0],     xFixedToFloat(srcTopRight.y) / info->texH[0]);
++#endif
++	if (pPriv->bicubic_enabled) {
++		VTX_OUT_FILTER((float)dstX,                       (float)dstY,
++		xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0],
++		xFixedToFloat(srcTopLeft.x) + 0.5,                xFixedToFloat(srcTopLeft.y) + 0.5);
++		VTX_OUT_FILTER((float)dstX,                       (float)(dstY + dsth),
++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0],
++		xFixedToFloat(srcBottomLeft.x) + 0.5,             xFixedToFloat(srcBottomLeft.y) + 0.5);
++		VTX_OUT_FILTER((float)(dstX + dstw),              (float)(dstY + dsth),
++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0],
++		xFixedToFloat(srcBottomRight.x) + 0.5,            xFixedToFloat(srcBottomRight.y) + 0.5);
++		VTX_OUT_FILTER((float)(dstX + dstw),              (float)dstY,
++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0],
++		xFixedToFloat(srcTopRight.x) + 0.5,               xFixedToFloat(srcTopRight.y) + 0.5);
++	} else {
++		if (info->ChipFamily >= CHIP_FAMILY_R200) {
++			VTX_OUT((float)dstX,                              (float)dstY,
++			xFixedToFloat(srcTopLeft.x) / info->accel_state->texW[0],      xFixedToFloat(srcTopLeft.y) / info->accel_state->texH[0]);
++		}
++		VTX_OUT((float)dstX,                              (float)(dstY + dsth),
++		xFixedToFloat(srcBottomLeft.x) / info->accel_state->texW[0],   xFixedToFloat(srcBottomLeft.y) / info->accel_state->texH[0]);
++		VTX_OUT((float)(dstX + dstw),                     (float)(dstY + dsth),
++		xFixedToFloat(srcBottomRight.x) / info->accel_state->texW[0],  xFixedToFloat(srcBottomRight.y) / info->accel_state->texH[0]);
++		VTX_OUT((float)(dstX + dstw),                     (float)dstY,
++		xFixedToFloat(srcTopRight.x) / info->accel_state->texW[0],     xFixedToFloat(srcTopRight.y) / info->accel_state->texH[0]);
++	}
+ 
+ 	if (IS_R300_3D || IS_R500_3D)
+ 	    /* flushing is pipelined, free/finish is not */
+-	    OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
++	    OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
+ 
+ #ifdef ACCEL_CP
+ 	ADVANCE_RING();
+ #else
+-	FINISH_VIDEO();
++	FINISH_ACCEL();
+ #endif /* !ACCEL_CP */
+ 
+ 	pBox++;
+     }
+ 
+     if (IS_R300_3D || IS_R500_3D) {
+-	BEGIN_VIDEO(2);
+-	OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL);
++	BEGIN_ACCEL(2);
++	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL);
+     } else
+-	BEGIN_VIDEO(1);
+-    OUT_VIDEO_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
+-    FINISH_VIDEO();
++	BEGIN_ACCEL(1);
++    OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
++    FINISH_ACCEL();
+ 
+     DamageDamageRegion(pPriv->pDraw, &pPriv->clip);
+ }
+ 
+ #undef VTX_OUT
++#undef VTX_OUT_FILTER
+ #undef FUNC_NAME
+diff --git a/src/radeon_tv.c b/src/radeon_tv.c
+index 90020b3..90d1ac9 100644
+--- a/src/radeon_tv.c
++++ b/src/radeon_tv.c
+@@ -140,7 +140,7 @@ static const uint16_t vert_timing_PAL[] =
+  **********************************************************************/
+ static const TVModeConstants availableTVModes[] =
+ {
+-    {
++    {   /* NTSC timing for 27 Mhz ref clk */
+ 	800,                /* horResolution */
+ 	600,                /* verResolution */
+ 	TV_STD_NTSC,        /* standard */
+@@ -155,7 +155,7 @@ static const TVModeConstants availableTVModes[] =
+ 	4,                  /* crtcPLL_postDiv */
+ 	1022,               /* pixToTV */
+     },
+-    {
++    {   /* PAL timing for 27 Mhz ref clk */
+ 	800,               /* horResolution */
+ 	600,               /* verResolution */
+ 	TV_STD_PAL,        /* standard */
+@@ -169,7 +169,22 @@ static const TVModeConstants availableTVModes[] =
+ 	231,               /* crtcPLL_M */
+ 	4,                 /* crtcPLL_postDiv */
+ 	759,               /* pixToTV */
+-    }
++    },
++    {   /* NTSC timing for 14 Mhz ref clk */
++	800,                /* horResolution */
++	600,                /* verResolution */
++	TV_STD_NTSC,        /* standard */
++	1018,               /* horTotal */
++	727,                /* verTotal */
++	813,                /* horStart */
++	840,                /* horSyncStart */
++	633,                /* verSyncStart */
++	630627,             /* defRestart */
++	347,                /* crtcPLL_N */
++	14,                 /* crtcPLL_M */
++	8,                  /* crtcPLL_postDiv */
++	1022,               /* pixToTV */
++    },
+ };
+ 
+ #define N_AVAILABLE_MODES (sizeof(availableModes) / sizeof(availableModes[ 0 ]))
+@@ -582,6 +597,8 @@ static Bool RADEONInitTVRestarts(xf86OutputPtr output, RADEONSavePtr save,
+ 				 DisplayModePtr mode)
+ {
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr  info       = RADEONPTR(output->scrn);
++    RADEONPLLPtr pll = &info->pll;
+     int restart;
+     unsigned hTotal;
+     unsigned vTotal;
+@@ -597,14 +614,21 @@ static Bool RADEONInitTVRestarts(xf86OutputPtr output, RADEONSavePtr save,
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-        radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     hTotal = constPtr->horTotal;
+     vTotal = constPtr->verTotal;
+-    
++
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+         radeon_output->tvStd == TV_STD_PAL_M ||
+@@ -696,6 +720,8 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+     ScrnInfoPtr pScrn = output->scrn;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+     RADEONInfoPtr  info = RADEONPTR(pScrn);
++    RADEONPLLPtr pll = &info->pll;
++    unsigned m, n, p;
+     unsigned i;
+     unsigned long vert_space, flicker_removal;
+     uint32_t tmp;
+@@ -703,14 +729,20 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+     const uint16_t *hor_timing;
+     const uint16_t *vert_timing;
+ 
+-
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-	radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     save->tv_crc_cntl = 0;
+ 
+@@ -796,7 +828,10 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+     save->tv_vscaler_cntl1 = RADEON_Y_W_EN;
+     save->tv_vscaler_cntl1 =
+ 	(save->tv_vscaler_cntl1 & 0xe3ff0000) | (vert_space * (1 << FRAC_BITS) / 10000);
+-    save->tv_vscaler_cntl1 |= RADEON_RESTART_FIELD;
++
++    if (pll->reference_freq == 2700)
++	save->tv_vscaler_cntl1 |= RADEON_RESTART_FIELD;
++
+     if (constPtr->horResolution == 1024)
+ 	save->tv_vscaler_cntl1 |= (4 << RADEON_Y_DEL_W_SIG_SHIFT);
+     else
+@@ -873,18 +908,33 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+ #endif
+ 
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+-        radeon_output->tvStd == TV_STD_NTSC_J)
+-	save->tv_pll_cntl = (NTSC_TV_PLL_M & RADEON_TV_M0LO_MASK) |
+-	    (((NTSC_TV_PLL_M >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) |
+-	    ((NTSC_TV_PLL_N & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) |
+-	    (((NTSC_TV_PLL_N >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) |
+-	    ((NTSC_TV_PLL_P & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT);
+-    else
+-	save->tv_pll_cntl = (PAL_TV_PLL_M & RADEON_TV_M0LO_MASK) |
+-	    (((PAL_TV_PLL_M >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) |
+-	    ((PAL_TV_PLL_N & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) |
+-	    (((PAL_TV_PLL_N >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) |
+-	    ((PAL_TV_PLL_P & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT);
++	radeon_output->tvStd == TV_STD_NTSC_J) {
++	if (pll->reference_freq == 2700) {
++	    m = NTSC_TV_PLL_M_27;
++	    n = NTSC_TV_PLL_N_27;
++	    p = NTSC_TV_PLL_P_27;
++	} else {
++	    m = NTSC_TV_PLL_M_14;
++	    n = NTSC_TV_PLL_N_14;
++	    p = NTSC_TV_PLL_P_14;
++	}
++    } else {
++	if (pll->reference_freq == 2700) {
++	    m = PAL_TV_PLL_M_27;
++	    n = PAL_TV_PLL_N_27;
++	    p = PAL_TV_PLL_P_27;
++	} else {
++	    /* FIXME */
++	    m = PAL_TV_PLL_M_27;
++	    n = PAL_TV_PLL_N_27;
++	    p = PAL_TV_PLL_P_27;
++	}
++    }
++    save->tv_pll_cntl = (m & RADEON_TV_M0LO_MASK) |
++	(((m >> 8) & RADEON_TV_M0HI_MASK) << RADEON_TV_M0HI_SHIFT) |
++	((n & RADEON_TV_N0LO_MASK) << RADEON_TV_N0LO_SHIFT) |
++	(((n >> 9) & RADEON_TV_N0HI_MASK) << RADEON_TV_N0HI_SHIFT) |
++	((p & RADEON_TV_P_MASK) << RADEON_TV_P_SHIFT);
+ 
+     save->tv_pll_cntl1 =  (((4 & RADEON_TVPCP_MASK)<< RADEON_TVPCP_SHIFT) |
+ 			   ((4 & RADEON_TVPVG_MASK) << RADEON_TVPVG_SHIFT) |
+@@ -999,14 +1049,23 @@ void RADEONAdjustCrtcRegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save,
+ {
+     const TVModeConstants *constPtr;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr  info       = RADEONPTR(pScrn);
++    RADEONPLLPtr pll = &info->pll;
+ 
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-        radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     save->crtc_h_total_disp = (((constPtr->horResolution / 8) - 1) << RADEON_CRTC_H_DISP_SHIFT) |
+ 	(((constPtr->horTotal / 8) - 1) << RADEON_CRTC_H_TOTAL_SHIFT);
+@@ -1030,14 +1089,23 @@ void RADEONAdjustPLLRegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save,
+     unsigned postDiv;
+     const TVModeConstants *constPtr;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr  info       = RADEONPTR(pScrn);
++    RADEONPLLPtr pll = &info->pll;
+ 
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-        radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     save->htotal_cntl = (constPtr->horTotal & 0x7 /*0xf*/) | RADEON_HTOT_CNTL_VGA_EN;
+ 
+@@ -1083,14 +1151,23 @@ void RADEONAdjustCrtc2RegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save,
+ {
+     const TVModeConstants *constPtr;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr  info       = RADEONPTR(pScrn);
++    RADEONPLLPtr pll = &info->pll;
+ 
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-        radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     save->crtc2_h_total_disp = (((constPtr->horResolution / 8) - 1) << RADEON_CRTC_H_DISP_SHIFT) |
+ 	(((constPtr->horTotal / 8) - 1) << RADEON_CRTC_H_TOTAL_SHIFT);
+@@ -1114,14 +1191,23 @@ void RADEONAdjustPLL2RegistersForTV(ScrnInfoPtr pScrn, RADEONSavePtr save,
+     unsigned postDiv;
+     const TVModeConstants *constPtr;
+     RADEONOutputPrivatePtr radeon_output = output->driver_private;
++    RADEONInfoPtr  info       = RADEONPTR(pScrn);
++    RADEONPLLPtr pll = &info->pll;
+ 
+     /* FIXME: need to revisit this when we add more modes */
+     if (radeon_output->tvStd == TV_STD_NTSC ||
+ 	radeon_output->tvStd == TV_STD_NTSC_J ||
+-        radeon_output->tvStd == TV_STD_PAL_M)
+-	constPtr = &availableTVModes[0];
+-    else
+-	constPtr = &availableTVModes[1];
++	radeon_output->tvStd == TV_STD_PAL_M) {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[0];
++	else
++	    constPtr = &availableTVModes[2];
++    } else {
++	if (pll->reference_freq == 2700)
++	    constPtr = &availableTVModes[1];
++	else
++	    constPtr = &availableTVModes[1]; /* FIXME */
++    }
+ 
+     save->htotal_cntl2 = (constPtr->horTotal & 0x7); /* 0xf */
+ 
+diff --git a/src/radeon_tv.h b/src/radeon_tv.h
+index c4b7838..8d77a77 100644
+--- a/src/radeon_tv.h
++++ b/src/radeon_tv.h
+@@ -27,24 +27,31 @@
+ #define MAX_H_SIZE 5 /* Range: [-5..5], negative is smaller, positive is larger */
+ 
+ /* tv standard constants */
+-#define NTSC_TV_PLL_M 22
+-#define NTSC_TV_PLL_N 175
+-#define NTSC_TV_PLL_P 5
+ #define NTSC_TV_CLOCK_T 233
+ #define NTSC_TV_VFTOTAL 1
+ #define NTSC_TV_LINES_PER_FRAME 525
+ #define NTSC_TV_ZERO_H_SIZE 479166
+ #define NTSC_TV_H_SIZE_UNIT 9478
+ 
+-#define PAL_TV_PLL_M 113
+-#define PAL_TV_PLL_N 668
+-#define PAL_TV_PLL_P 3
+ #define PAL_TV_CLOCK_T 188
+ #define PAL_TV_VFTOTAL 3
+ #define PAL_TV_LINES_PER_FRAME 625
+ #define PAL_TV_ZERO_H_SIZE 473200
+ #define PAL_TV_H_SIZE_UNIT 9360
+ 
++/* tv pll setting for 27 mhz ref clk */
++#define NTSC_TV_PLL_M_27 22
++#define NTSC_TV_PLL_N_27 175
++#define NTSC_TV_PLL_P_27 5
++
++#define PAL_TV_PLL_M_27 113
++#define PAL_TV_PLL_N_27 668
++#define PAL_TV_PLL_P_27 3
++
++/* tv pll setting for 14 mhz ref clk */
++#define NTSC_TV_PLL_M_14 33
++#define NTSC_TV_PLL_N_14 693
++#define NTSC_TV_PLL_P_14 7
+ 
+ #define VERT_LEAD_IN_LINES 2
+ #define FRAC_BITS 0xe
+diff --git a/src/radeon_version.h b/src/radeon_version.h
+index ccc1367..5717ead 100644
+--- a/src/radeon_version.h
++++ b/src/radeon_version.h
+@@ -39,10 +39,9 @@
+ #define R200_DRIVER_NAME     "r200"
+ #define R300_DRIVER_NAME     "r300"
+ 
+-#define RADEON_VERSION_MAJOR 4
+-#define RADEON_VERSION_MAJOR_TILED 5
+-#define RADEON_VERSION_MINOR 3
+-#define RADEON_VERSION_PATCH 0
++#define RADEON_VERSION_MAJOR PACKAGE_VERSION_MAJOR
++#define RADEON_VERSION_MINOR PACKAGE_VERSION_MINOR
++#define RADEON_VERSION_PATCH PACKAGE_VERSION_PATCHLEVEL
+ 
+ #ifndef RADEON_VERSION_EXTRA
+ #define RADEON_VERSION_EXTRA ""
+diff --git a/src/radeon_video.c b/src/radeon_video.c
+index ac60166..6249cea 100644
+--- a/src/radeon_video.c
++++ b/src/radeon_video.c
+@@ -89,10 +89,6 @@ static void RADEON_MSP_SetEncoding(RADEONPortPrivPtr pPriv);
+ static void RADEON_TDA9885_SetEncoding(RADEONPortPrivPtr pPriv);
+ static void RADEON_FI1236_SetEncoding(RADEONPortPrivPtr pPriv);
+ 
+-
+-
+-#define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v))
+-
+ static Atom xvBrightness, xvColorKey, xvSaturation, xvDoubleBuffer;
+ static Atom xvRedIntensity, xvGreenIntensity, xvBlueIntensity;
+ static Atom xvContrast, xvHue, xvColor, xvAutopaintColorkey, xvSetDefaults;
+@@ -106,7 +102,6 @@ static Atom xvEncoding, xvFrequency, xvVolume, xvMute,
+ 	     
+ static Atom xvOvAlpha, xvGrAlpha, xvAlphaMode;
+ 
+-
+ #define GET_PORT_PRIVATE(pScrn) \
+    (RADEONPortPrivPtr)((RADEONPTR(pScrn))->adaptor->pPortPrivates[0].ptr)
+ 
+@@ -245,19 +240,6 @@ radeon_crtc_clip_video(ScrnInfoPtr pScrn,
+ #endif
+ }
+ 
+-#ifdef USE_EXA
+-static void
+-ATIVideoSave(ScreenPtr pScreen, ExaOffscreenArea *area)
+-{
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+-    RADEONInfoPtr info = RADEONPTR(pScrn);
+-    RADEONPortPrivPtr pPriv = info->adaptor->pPortPrivates[0].ptr;
+-
+-    if (pPriv->video_memory == area)
+-        pPriv->video_memory = NULL;
+-}
+-#endif /* USE_EXA */
+-
+ void RADEONInitVideo(ScreenPtr pScreen)
+ {
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+@@ -1632,13 +1614,12 @@ RADEONSetupImageVideo(ScreenPtr pScreen)
+ 
+     pPriv->textured = FALSE;
+ 
+-    if(pPriv->theatre != NULL) 
+-    {
++    if(pPriv->theatre != NULL) {
+ 	/* video decoder is present, extend capabilities */
+        adapt->nEncodings = 13;
+        adapt->pEncodings = InputVideoEncodings;
+        adapt->type |= XvVideoMask;
+-       adapt->nAttributes = NUM_DEC_ATTRIBUTES;    
++       adapt->nAttributes = NUM_DEC_ATTRIBUTES;
+        adapt->PutVideo = RADEONPutVideo;
+     }
+ 
+@@ -1654,8 +1635,19 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
+   unsigned char *RADEONMMIO = info->MMIO;
+   RADEONPortPrivPtr pPriv = (RADEONPortPrivPtr)data;
+ 
+-    if (pPriv->textured)
+-	return;
++  if (pPriv->textured) {
++      if (cleanup) {
++	  if (pPriv->bicubic_memory != NULL) {
++	      radeon_legacy_free_memory(pScrn, pPriv->bicubic_memory);
++	      pPriv->bicubic_memory = NULL;
++	  }
++	  if (pPriv->video_memory != NULL) {
++	      radeon_legacy_free_memory(pScrn, pPriv->video_memory);
++	      pPriv->video_memory = NULL;
++	  }
++      }
++      return;
++  }
+ 
+   REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
+ 
+@@ -1675,7 +1667,7 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
+         if(pPriv->i2c != NULL) RADEON_board_setmisc(pPriv);
+      }
+      if (pPriv->video_memory != NULL) {
+-	 RADEONFreeMemory(pScrn, pPriv->video_memory);
++	 radeon_legacy_free_memory(pScrn, pPriv->video_memory);
+ 	 pPriv->video_memory = NULL;
+      }
+      pPriv->videoStatus = 0;
+@@ -1699,9 +1691,6 @@ RADEONSetPortAttribute(ScrnInfoPtr  pScrn,
+     Bool		setAlpha = FALSE;
+     unsigned char *RADEONMMIO = info->MMIO;
+ 
+-    if (pPriv->textured)
+-	return BadMatch;
+-
+     RADEON_SYNC(info, pScrn);
+ 
+ #define RTFSaturation(a)   (1.0 + ((a)*1.0)/1000.0)
+@@ -1928,7 +1917,7 @@ RADEONSetPortAttribute(ScrnInfoPtr  pScrn,
+ 	if(pPriv->fi1236!=NULL){
+ 		xf86_fi1236_dump_status(pPriv->fi1236);
+ 		}
+-   } 
++   }
+    else if(attribute == xvAdjustment) 
+    {
+   	pPriv->adjustment=value;
+@@ -1973,9 +1962,6 @@ RADEONGetPortAttribute(ScrnInfoPtr  pScrn,
+     RADEONInfoPtr	info = RADEONPTR(pScrn);
+     RADEONPortPrivPtr	pPriv = (RADEONPortPrivPtr)data;
+ 
+-    if (pPriv->textured)
+-	return BadMatch;
+-
+     if (info->accelOn) RADEON_SYNC(info, pScrn);
+ 
+     if(attribute == xvAutopaintColorkey)
+@@ -2433,120 +2419,13 @@ RADEONCopyMungedData(
+     }
+ }
+ 
+-
+-/* Allocates memory, either by resizing the allocation pointed to by mem_struct,
+- * or by freeing mem_struct (if non-NULL) and allocating a new space.  The size
+- * is measured in bytes, and the offset from the beginning of card space is
+- * returned.
+- */
+-uint32_t
+-RADEONAllocateMemory(
+-   ScrnInfoPtr pScrn,
+-   void **mem_struct,
+-   int size
+-){
+-    ScreenPtr pScreen;
+-    RADEONInfoPtr info = RADEONPTR(pScrn);
+-    int offset = 0;
+-
+-    pScreen = screenInfo.screens[pScrn->scrnIndex];
+-#ifdef USE_EXA
+-    if (info->useEXA) {
+-	ExaOffscreenArea *area = *mem_struct;
+-
+-	if (area != NULL) {
+-	    if (area->size >= size)
+-		return area->offset;
+-
+-	    exaOffscreenFree(pScrn->pScreen, area);
+-	}
+-
+-	area = exaOffscreenAlloc(pScrn->pScreen, size, 64, TRUE, ATIVideoSave,
+-				 NULL);
+-	*mem_struct = area;
+-	if (area == NULL)
+-	    return 0;
+-	offset = area->offset;
+-    }
+-#endif /* USE_EXA */
+-#ifdef USE_XAA
+-    if (!info->useEXA) {
+-	FBLinearPtr linear = *mem_struct;
+-	int cpp = info->CurrentLayout.bitsPerPixel / 8;
+-
+-	/* XAA allocates in units of pixels at the screen bpp, so adjust size
+-	 * appropriately.
+-	 */
+-	size = (size + cpp - 1) / cpp;
+-
+-	if (linear) {
+-	    if(linear->size >= size)
+-		return linear->offset * cpp;
+-
+-	    if(xf86ResizeOffscreenLinear(linear, size))
+-		return linear->offset * cpp;
+-
+-	    xf86FreeOffscreenLinear(linear);
+-	}
+-
+-	linear = xf86AllocateOffscreenLinear(pScreen, size, 16,
+-						NULL, NULL, NULL);
+-	*mem_struct = linear;
+-
+-	if (!linear) {
+-	    int max_size;
+-
+-	    xf86QueryLargestOffscreenLinear(pScreen, &max_size, 16,
+-					    PRIORITY_EXTREME);
+-
+-	    if(max_size < size)
+-		return 0;
+-
+-	    xf86PurgeUnlockedOffscreenAreas(pScreen);
+-	    linear = xf86AllocateOffscreenLinear(pScreen, size, 16,
+-						     NULL, NULL, NULL);
+-	    *mem_struct = linear;
+-	    if (!linear)
+-		return 0;
+-	}
+-	offset = linear->offset * cpp;
+-    }
+-#endif /* USE_XAA */
+-
+-    return offset;
+-}
+-
+-void
+-RADEONFreeMemory(
+-   ScrnInfoPtr pScrn,
+-   void *mem_struct
+-){
+-    RADEONInfoPtr info = RADEONPTR(pScrn);
+-
+-#ifdef USE_EXA
+-    if (info->useEXA) {
+-	ExaOffscreenArea *area = mem_struct;
+-
+-	if (area != NULL)
+-	    exaOffscreenFree(pScrn->pScreen, area);
+-    }
+-#endif /* USE_EXA */
+-#ifdef USE_XAA
+-    if (!info->useEXA) {
+-	FBLinearPtr linear = mem_struct;
+-
+-	if (linear != NULL)
+-	    xf86FreeOffscreenLinear(linear);
+-    }
+-#endif /* USE_XAA */
+-}
+-
+ static void
+ RADEONDisplayVideo(
+     ScrnInfoPtr pScrn,
+     xf86CrtcPtr crtc,
+     RADEONPortPrivPtr pPriv,
+     int id,
++    int base_offset,
+     int offset1, int offset2,
+     int offset3, int offset4,
+     int offset5, int offset6,
+@@ -2715,6 +2594,20 @@ RADEONDisplayVideo(
+         }
+ #endif
+ 
++    /* Make the overlay base address as close to the buffers as possible to
++     * prevent the buffer offsets from exceeding the hardware limit of 128 MB.
++     * The base address must be aligned to a multiple of 4 MB.
++     */
++    base_offset = ((info->fbLocation + base_offset) & (~0 << 22)) -
++	info->fbLocation;
++
++    offset1 -= base_offset;
++    offset2 -= base_offset;
++    offset3 -= base_offset;
++    offset4 -= base_offset;
++    offset5 -= base_offset;
++    offset6 -= base_offset;
++
+     /* keep everything in 16.16 */
+ 
+     if (is_planar) {
+@@ -2846,6 +2739,12 @@ RADEONDisplayVideo(
+ 	src_w >>= 1;
+     OUTREG(RADEON_OV0_P2_X_START_END, (src_w + leftuv - 1) | (leftuv << 16));
+     OUTREG(RADEON_OV0_P3_X_START_END, (src_w + leftuv - 1) | (leftuv << 16));
++    if (info->ModeReg->ov0_base_addr != (info->fbLocation + base_offset)) {
++	ErrorF("Changing OV0_BASE_ADDR from 0x%08x to 0x%08x\n",
++	       info->ModeReg->ov0_base_addr, info->fbLocation + base_offset);
++	info->ModeReg->ov0_base_addr = info->fbLocation + base_offset;
++	OUTREG(RADEON_OV0_BASE_ADDR, info->ModeReg->ov0_base_addr);
++    }
+     OUTREG(RADEON_OV0_VID_BUF0_BASE_ADRS, offset1);
+     OUTREG(RADEON_OV0_VID_BUF1_BASE_ADRS, offset2);
+     OUTREG(RADEON_OV0_VID_BUF2_BASE_ADRS, offset3);
+@@ -3038,9 +2937,9 @@ RADEONPutImage(
+    if (idconv == FOURCC_YV12 || id == FOURCC_I420) {
+       new_size += (dstPitch >> 1) * ((height + 1) & ~1);
+    }
+-   pPriv->video_offset = RADEONAllocateMemory(pScrn, &pPriv->video_memory,
+-					      (pPriv->doubleBuffer ?
+-					       (new_size * 2) : new_size));
++   pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory,
++						       (pPriv->doubleBuffer ?
++						       (new_size * 2) : new_size), 64);
+    if (pPriv->video_offset == 0)
+       return BadAlloc;
+ 
+@@ -3150,9 +3049,10 @@ RADEONPutImage(
+ 
+     /* FIXME: someone should look at these offsets, I don't think it makes sense how
+               they are handled throughout the source. */
+-    RADEONDisplayVideo(pScrn, crtc, pPriv, idconv, offset, offset + d2line, offset + d3line,
+-		     offset, offset + d2line, offset + d3line, width, height, dstPitch,
+-		     xa, xb, ya, &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB);
++    RADEONDisplayVideo(pScrn, crtc, pPriv, idconv, pPriv->video_offset, offset,
++		       offset + d2line, offset + d3line, offset, offset + d2line,
++		       offset + d3line, width, height, dstPitch, xa, xb, ya,
++		       &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB);
+ 
+     pPriv->videoStatus = CLIENT_VIDEO_ON;
+ 
+@@ -3233,7 +3133,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pScrn, Time now)
+ 	} else {  /* FREE_TIMER */
+ 	    if(pPriv->freeTime < now) {
+ 		if (pPriv->video_memory != NULL) {
+-		    RADEONFreeMemory(pScrn, pPriv->video_memory);
++		    radeon_legacy_free_memory(pScrn, pPriv->video_memory);
+ 		    pPriv->video_memory = NULL;
+ 		}
+ 		pPriv->videoStatus = 0;
+@@ -3268,7 +3168,7 @@ RADEONAllocateSurface(
+     pitch = ((w << 1) + 15) & ~15;
+     size = pitch * h;
+ 
+-    offset = RADEONAllocateMemory(pScrn, &surface_memory, size);
++    offset = radeon_legacy_allocate_memory(pScrn, &surface_memory, size, 64);
+     if (offset == 0)
+ 	return BadAlloc;
+ 
+@@ -3276,18 +3176,18 @@ RADEONAllocateSurface(
+     surface->height = h;
+ 
+     if(!(surface->pitches = xalloc(sizeof(int)))) {
+-	RADEONFreeMemory(pScrn, surface_memory);
++	radeon_legacy_free_memory(pScrn, surface_memory);
+ 	return BadAlloc;
+     }
+     if(!(surface->offsets = xalloc(sizeof(int)))) {
+ 	xfree(surface->pitches);
+-	RADEONFreeMemory(pScrn, surface_memory);
++	radeon_legacy_free_memory(pScrn, surface_memory);
+ 	return BadAlloc;
+     }
+     if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) {
+ 	xfree(surface->pitches);
+ 	xfree(surface->offsets);
+-	RADEONFreeMemory(pScrn, surface_memory);
++	radeon_legacy_free_memory(pScrn, surface_memory);
+ 	return BadAlloc;
+     }
+ 
+@@ -3328,7 +3228,8 @@ RADEONFreeSurface(
+ 
+     if(pPriv->isOn)
+ 	RADEONStopSurface(surface);
+-    RADEONFreeMemory(pScrn, pPriv->surface_memory);
++    radeon_legacy_free_memory(pScrn, pPriv->surface_memory);
++    pPriv->surface_memory = NULL;
+     xfree(surface->pitches);
+     xfree(surface->offsets);
+     xfree(surface->devPrivate.ptr);
+@@ -3417,8 +3318,9 @@ RADEONDisplaySurface(
+ 		       surface->offsets[0], surface->offsets[0],
+ 		       surface->offsets[0], surface->offsets[0],
+ 		       surface->offsets[0], surface->offsets[0],
+-		       surface->width, surface->height, surface->pitches[0],
+-		       xa, xb, ya, &dstBox, src_w, src_h, drw_w, drw_h, METHOD_BOB);
++		       surface->offsets[0], surface->width, surface->height,
++		       surface->pitches[0], xa, xb, ya, &dstBox, src_w, src_h,
++		       drw_w, drw_h, METHOD_BOB);
+ 
+     if (portPriv->autopaint_colorkey)
+ 	xf86XVFillKeyHelper(pScrn->pScreen, portPriv->colorKey, clipBoxes);
+@@ -3602,9 +3504,9 @@ RADEONPutVideo(
+    if (pPriv->capture_vbi_data)
+       alloc_size += 2 * 2 * vbi_line_width * 21;
+ 
+-   pPriv->video_offset = RADEONAllocateMemory(pScrn, &pPriv->video_memory,
+-					      (pPriv->doubleBuffer ?
+-					       (new_size * 2) : new_size));
++   pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory,
++						      (pPriv->doubleBuffer ?
++						      (new_size * 2) : new_size), 64);
+    if (pPriv->video_offset == 0)
+       return BadAlloc;
+ 
+@@ -3705,10 +3607,12 @@ RADEONPutVideo(
+ 	    RADEONFillKeyHelper(pDraw, pPriv->colorKey, clipBoxes);
+    }
+ 
+-   RADEONDisplayVideo(pScrn, crtc, pPriv, id, offset1+top*srcPitch, offset2+top*srcPitch,
+-		offset3+top*srcPitch, offset4+top*srcPitch, offset1+top*srcPitch,
+-		offset2+top*srcPitch, width, height, dstPitch*mult/2,
+-                     xa, xb, ya, &dstBox, src_w, src_h*mult/2, drw_w, drw_h, pPriv->overlay_deinterlacing_method);
++   RADEONDisplayVideo(pScrn, crtc, pPriv, id, pPriv->video_offset,
++		      offset1+top*srcPitch, offset2+top*srcPitch,
++		      offset3+top*srcPitch, offset4+top*srcPitch,
++		      offset1+top*srcPitch, offset2+top*srcPitch, width, height,
++		      dstPitch*mult/2, xa, xb, ya, &dstBox, src_w, src_h*mult/2,
++		      drw_w, drw_h, pPriv->overlay_deinterlacing_method);
+ 
+    RADEONWaitForFifo(pScrn, 1);
+    OUTREG(RADEON_OV0_REG_LOAD_CNTL,  RADEON_REG_LD_CTL_LOCK);
+diff --git a/src/radeon_video.h b/src/radeon_video.h
+index 096de37..11b8029 100644
+--- a/src/radeon_video.h
++++ b/src/radeon_video.h
+@@ -13,6 +13,10 @@
+ 
+ #include "xf86Crtc.h"
+ 
++#include "bicubic_table.h"
++
++#define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v))
++
+ /* Xvideo port struct */
+ typedef struct {
+    uint32_t	 transform_index;
+@@ -37,7 +41,7 @@ typedef struct {
+    uint32_t      radeon_N;
+    uint32_t      i2c_status;
+    uint32_t      i2c_cntl;
+-   
++
+    FI1236Ptr     fi1236;
+    uint8_t       tuner_type;
+    MSP3430Ptr    msp3430;
+@@ -46,7 +50,7 @@ typedef struct {
+ 
+    /* VIP bus and devices */
+    GENERIC_BUS_Ptr  VIP;
+-   TheatrePtr       theatre;   
++   TheatrePtr       theatre;
+ 
+    Bool          video_stream_active;
+    int           encoding;
+@@ -56,7 +60,7 @@ typedef struct {
+    int           sap_channel;
+    int           v;
+    uint32_t      adjustment; /* general purpose variable */
+-   
++
+ #define METHOD_BOB      0
+ #define METHOD_SINGLE   1
+ #define METHOD_WEAVE    2
+@@ -82,13 +86,16 @@ typedef struct {
+    xf86CrtcPtr   desired_crtc;
+ 
+    int           size;
+-#ifdef USE_EXA
+-   ExaOffscreenArea *off_screen;
+-#endif
+ 
+    void         *video_memory;
+    int           video_offset;
+ 
++   /* bicubic filtering */
++   void         *bicubic_memory;
++   int           bicubic_offset;
++   Bool          bicubic_enabled;
++   uint32_t      bicubic_src_offset;
++
+    Atom          device_id, location_id, instance_id;
+ 
+     /* textured video */
+@@ -106,18 +113,12 @@ typedef struct {
+     int drw_x, drw_y;
+ } RADEONPortPrivRec, *RADEONPortPrivPtr;
+ 
+-
+ void RADEONInitI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
+ void RADEONResetI2C(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
+ 
+ void RADEONVIP_init(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
+ void RADEONVIP_reset(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
+ 
+-uint32_t
+-RADEONAllocateMemory(ScrnInfoPtr pScrn, void **mem_struct, int size);
+-void
+-RADEONFreeMemory(ScrnInfoPtr pScrn, void *mem_struct);
+-
+ int  RADEONSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
+ int  RADEONGetPortAttribute(ScrnInfoPtr, Atom ,INT32 *, pointer);
+ void RADEONStopVideo(ScrnInfoPtr, pointer, Bool);
diff --git a/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-ati/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-chips/PKGBUILD b/abs/core-testing/xf86-video-chips/PKGBUILD
index 60161c3..f63366d 100644
--- a/abs/core-testing/xf86-video-chips/PKGBUILD
+++ b/abs/core-testing/xf86-video-chips/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 3258 2008-06-21 18:34:07Z jgc $
+# $Id: PKGBUILD 22287 2008-12-25 17:17:00Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-chips
-pkgver=1.2.0
+pkgver=1.2.1
 pkgrel=1
 pkgdesc="X.org Chips and Technologies video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=(glibc)
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2f2643fca6335f18024bffa6c4e0c12f')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('0fec6bee65383790485d917247a61629')
diff --git a/abs/core-testing/xf86-video-cirrus/PKGBUILD b/abs/core-testing/xf86-video-cirrus/PKGBUILD
index 02aecfc..4527182 100644
--- a/abs/core-testing/xf86-video-cirrus/PKGBUILD
+++ b/abs/core-testing/xf86-video-cirrus/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 3247 2008-06-21 18:15:30Z jgc $
+# $Id: PKGBUILD 11420 2008-08-31 15:22:15Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-cirrus
 pkgver=1.2.1
-pkgrel=1
+pkgrel=2
 pkgdesc="X.org Cirrus Logic video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
diff --git a/abs/core-testing/xf86-video-dummy/PKGBUILD b/abs/core-testing/xf86-video-dummy/PKGBUILD
index 51763f6..b060c9c 100644
--- a/abs/core-testing/xf86-video-dummy/PKGBUILD
+++ b/abs/core-testing/xf86-video-dummy/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11419 2008-08-31 15:22:13Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-dummy
-pkgver=0.2.0
-pkgrel=4
+pkgver=0.3.0
+pkgrel=1
 pkgdesc="X.org dummy video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('22b7cc20a33443cbd218bd2521850cfe')
+md5sums=('3d96297556846bee02a74166ffb5d052')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-video-fbdev/PKGBUILD b/abs/core-testing/xf86-video-fbdev/PKGBUILD
index c5d835c..05bcbca 100644
--- a/abs/core-testing/xf86-video-fbdev/PKGBUILD
+++ b/abs/core-testing/xf86-video-fbdev/PKGBUILD
@@ -1,23 +1,26 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11425 2008-08-31 15:24:08Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-fbdev
-pkgver=0.3.1
-pkgrel=4
+pkgver=0.4.0
+pkgrel=1
 pkgdesc="X.org framebuffer video driver"
 arch=(i686 x86_64)
+license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('9ae810c6c6c3c9713a67866fe794d4ff')
+md5sums=('6572b39fec77b8e6de1c858a93992924')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
diff --git a/abs/core-testing/xf86-video-glint/PKGBUILD b/abs/core-testing/xf86-video-glint/PKGBUILD
index 15c0dce..f52d528 100644
--- a/abs/core-testing/xf86-video-glint/PKGBUILD
+++ b/abs/core-testing/xf86-video-glint/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22285 2008-12-25 17:13:14Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-glint
-pkgver=1.1.1
-pkgrel=5
+pkgver=1.2.2
+pkgrel=1
 pkgdesc="X.org GLINT/Permedia video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.3.99.2' 'xf86driproto' 'mesa')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4295a46a75fa98470c6dfb0e1a4f7e9f')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('2cf49f701024a145bd25aff9da11d479')
diff --git a/abs/core-testing/xf86-video-i128/PKGBUILD b/abs/core-testing/xf86-video-i128/PKGBUILD
index fcf2c06..2c98984 100644
--- a/abs/core-testing/xf86-video-i128/PKGBUILD
+++ b/abs/core-testing/xf86-video-i128/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11431 2008-08-31 15:26:32Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-i128
-pkgver=1.2.1
-pkgrel=4
+pkgver=1.3.0
+pkgrel=1
 pkgdesc="X.org Number 9 I128 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('aff4922d2f02bad7e0d8649358edbcee')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('d0080732eaa15059b0a953aa3522185a')
diff --git a/abs/core-testing/xf86-video-i740/PKGBUILD b/abs/core-testing/xf86-video-i740/PKGBUILD
index 9101847..3e0fd57 100644
--- a/abs/core-testing/xf86-video-i740/PKGBUILD
+++ b/abs/core-testing/xf86-video-i740/PKGBUILD
@@ -1,23 +1,22 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11440 2008-08-31 15:37:53Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-i740
-pkgver=1.1.0
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.org Intel i740 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('57302e225060a7286ae1a970c87a589b')
+md5sums=('d0e5a805c546b29b1dd3b55a68d16dc4')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch b/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch
new file mode 100644
index 0000000..c2c72a7
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/20_thinkpad_g40_quirk.patch
@@ -0,0 +1,18 @@
+diff -Nurp xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c	2008-06-20 00:05:23.000000000 -0700
++++ xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c	2008-06-20 00:20:19.000000000 -0700
+@@ -266,9 +266,13 @@ static i830_quirk i830_quirk_list[] = {
+     /* HP Compaq 6730s has no TV output */
+     { PCI_CHIP_IGD_GM, 0x103c, 0x30e8, quirk_ignore_tv },
+ 
++    /* Thinkpad G40 needs pipe A force quirk (See LP: #240457) */
++    { PCI_CHIP_I855_GM, 0x1014, 0x0543, quirk_pipea_force },
+     /* Thinkpad R31 needs pipe A force quirk */
+     { PCI_CHIP_I830_M, 0x1014, 0x0505, quirk_pipea_force },
+-    /* Dell Latitude D400 needs pipe A force quirk (LP: #228519) */
++    /* Dell Latitude C400 needs pipe A force quirk (See LP: #216490) */
++    { PCI_CHIP_I855_GM, 0x1028, 0x00c8, quirk_pipea_force },
++    /* Dell Latitude D400 needs pipe A force quirk (See LP: #228519) */
+     { PCI_CHIP_I855_GM, 0x1028, 0x0139, quirk_pipea_force },
+     /* Dell Latitude D500 needs pipe A force quirk */
+     { PCI_CHIP_I855_GM, 0x1028, 0x0152, quirk_pipea_force },
diff --git a/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch b/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch
new file mode 100644
index 0000000..8479a40
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/21_quirk_lenovo.patch
@@ -0,0 +1,12 @@
+diff -Nurp xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c	2008-06-26 20:21:14.000000000 -0700
++++ xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c	2008-06-26 20:30:23.000000000 -0700
+@@ -242,6 +242,8 @@ static i830_quirk i830_quirk_list[] = {
+ 
+     /* Lenovo Napa TV (use dmi)*/
+     { PCI_CHIP_I945_GM, 0x17aa, SUBSYS_ANY, quirk_lenovo_tv_dmi },
++    /* Lenovo T60/R60 needs pipe A force quirk (See LP: #243405) */
++    { PCI_CHIP_I945_GM, 0x17aa, 0x201a, quirk_pipea_force },
+     /* Lenovo T61 has no TV output */
+     { PCI_CHIP_I965_GM, 0x17aa, 0x20b5, quirk_ignore_tv },
+     /* Lenovo 3000 v200 */
diff --git a/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch b/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch
new file mode 100644
index 0000000..d82923f
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch
@@ -0,0 +1,13 @@
+diff -Nurp xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c	2008-09-08 20:12:28.000000000 -0700
++++ xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c	2008-09-08 21:02:53.000000000 -0700
+@@ -312,6 +317,9 @@ static i830_quirk i830_quirk_list[] = {
+     /* Sony vaio VGN-SZ4MN (See LP: #212163) */
+     { PCI_CHIP_I830_M, 0x104d, 0x81e6, quirk_pipea_force },
+ 
++    /* Quanta Gigabyte W251U (See LP: #244242) */
++    { PCI_CHIP_I945_GM, 0x152d, 0x0755, quirk_pipea_force },
++
+     /* Ordi Enduro UW31 (See LP: #152416) */
+     { PCI_CHIP_I945_GM, 0x1584, 0x9900, quirk_ignore_tv },
+ 
diff --git a/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch b/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch
new file mode 100644
index 0000000..a6db410
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/25_quirk_nc6110.patch
@@ -0,0 +1,13 @@
+diff --git a/src/i830_quirks.c b/src/i830_quirks.c
+index 089e458..09b7c53 100644
+--- a/src/i830_quirks.c
++++ b/src/i830_quirks.c
+@@ -278,6 +278,8 @@ static i830_quirk i830_quirk_list[] = {
+     /* Samsung Q45 has no TV output */
+     { PCI_CHIP_I965_GM, 0x144d, 0xc510, quirk_ignore_tv },
+ 
++    /* HP Compaq nx6110 has no TV output */
++    { PCI_CHIP_I915_GM, 0x103c, 0x099c, quirk_ignore_tv },
+     /* HP Compaq 6730s has no TV output */
+     { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv },
+ 
diff --git a/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch b/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch
new file mode 100644
index 0000000..d74b809
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch
@@ -0,0 +1,63 @@
+diff -Nurp patched/src/bios_reader/bios_reader.c working/src/bios_reader/bios_reader.c
+--- patched/src/bios_reader/bios_reader.c	2008-10-16 14:06:07.000000000 -0700
++++ working/src/bios_reader/bios_reader.c	2008-10-16 14:25:07.000000000 -0700
+@@ -180,6 +180,19 @@ static void dump_lvds_options(void *data
+     printf("\tPFIT mode: %d\n", options->pfit_mode);
+ }
+ 
++static void dump_lvds_ptr_data(void *data, unsigned char *base)
++{
++    struct bdb_lvds_lfp_data_ptrs *ptrs = data;
++
++    struct lvds_fp_timing *fp_timing =
++        (struct lvds_fp_timing *)(base + ptrs->ptr[panel_type].fp_timing_offset);
++
++    printf("LVDS timing pointer data:\n");
++
++    printf("\tpanel type %02i: %dx%d\n", panel_type, fp_timing->x_res,
++           fp_timing->y_res);
++}
++
+ static void dump_lvds_data(void *data, unsigned char *base)
+ {
+     struct bdb_lvds_lfp_data *lvds_data = data;
+@@ -274,6 +287,8 @@ int main(int argc, char **argv)
+     dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS));
+     dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS));
+     dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb);
++    dump_lvds_ptr_data(find_section(bdb, BDB_LVDS_LFP_DATA_PTRS),
++                       (unsigned char *)bdb);
+ 
+     return 0;
+ }
+diff -Nurp patched/src/i830_bios.c working/src/i830_bios.c
+--- patched/src/i830_bios.c	2008-10-16 14:06:07.000000000 -0700
++++ working/src/i830_bios.c	2008-10-16 14:27:15.000000000 -0700
+@@ -89,7 +89,8 @@ parse_panel_data(I830Ptr pI830, struct b
+ {
+     struct bdb_lvds_options *lvds_options;
+     struct bdb_lvds_lfp_data *lvds_lfp_data;
+-    struct bdb_lvds_lfp_data_entry *entry;
++    struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
++    int timing_offset;
+     DisplayModePtr fixed_mode;
+     unsigned char *timing_ptr;
+ 
+@@ -104,12 +105,13 @@ parse_panel_data(I830Ptr pI830, struct b
+     if (lvds_options->panel_type == 0xff)
+ 	return;
+ 
+-    lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA);
+-    if (!lvds_lfp_data)
++    lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS);
++    if (!lvds_lfp_data_ptrs)
+ 	return;
+ 
+-    entry = &lvds_lfp_data->data[lvds_options->panel_type];
+-    timing_ptr = (unsigned char *)&entry->dvo_timing;
++    timing_offset =
++        lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset;
++    timing_ptr = (unsigned char *)bdb + timing_offset;
+ 
+     fixed_mode = xnfalloc(sizeof(DisplayModeRec));
+     memset(fixed_mode, 0, sizeof(*fixed_mode));
diff --git a/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch b/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch
new file mode 100644
index 0000000..cc881b9
--- /dev/null
+++ b/abs/core-testing/xf86-video-intel/27_disable_fbc_on_965.patch
@@ -0,0 +1,18 @@
+diff --git a/src/i830.h b/src/i830.h
+index 5b78236..89f19d2 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -950,6 +950,13 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
+      */
+     if (!pI830->tiling || (IS_I965G(pI830) && pI830->accel <= ACCEL_XAA))
+ 	return FALSE;
++    /* We have not gotten FBC to work consistently on 965GM. Our best
++     * working theory right now is that FBC simply isn't reliable on
++     * that device. See this bug report for more details:
++     * https://bugs.freedesktop.org/show_bug.cgi?id=16257
++     */
++    if (IS_I965GM(pI830))
++	return FALSE;
+     return TRUE;
+ }
+ 
diff --git a/abs/core-testing/xf86-video-intel/PKGBUILD b/abs/core-testing/xf86-video-intel/PKGBUILD
index 106ec41..3530b90 100644
--- a/abs/core-testing/xf86-video-intel/PKGBUILD
+++ b/abs/core-testing/xf86-video-intel/PKGBUILD
@@ -1,25 +1,43 @@
-# $Id: PKGBUILD 3246 2008-06-21 18:13:57Z jgc $
+# $Id: PKGBUILD 19083 2008-11-14 21:09:00Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-intel
-pkgver=2.3.2
+pkgver=2.4.3
 pkgrel=1
-pkgdesc="X.org Intel i810/i830/i915 video drivers"
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('intel-dri' 'libdrm')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'xorg-util-macros' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.0.3')
-
-options=('!libtool')
+depends=('intel-dri>=7.2' 'libpciaccess>=0.10.5' 'libdrm>=2.3.1')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.2' 'libdrm=2.3.1')
+conflicts=('xorg-server<1.5.3' 'xf86-video-i810')
+replaces=('xf86-video-i810')
+options=('!libtool' 'force')
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fef32ffc428d9d565ab10b338ce17855')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+	20_thinkpad_g40_quirk.patch
+	21_quirk_lenovo.patch
+	23_quirks_studiohybrid_eeepc_and_w251u.patch
+	25_quirk_nc6110.patch
+	26_i830-use-lfp-data-ptrs.patch
+	27_disable_fbc_on_965.patch)
+md5sums=('a664819288b98a37f77ab6ae1e14c9d9'
+         '68a362a168ffa4f37d9f722f43855468'
+         '2d617364ac2e47ca366901d0b849b1a1'
+         '3d0f8e593e8eac3000154feb6b0f45b8'
+         '3deb800906e6845e8576d4e9d0f22b12'
+         'cb7ee7a68858c038020e0cd991143d8e'
+         'd215e428585c6e55aefd9f525ebfbe7b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/20_thinkpad_g40_quirk.patch" || return 1
+  patch -Np1 -i "${srcdir}/21_quirk_lenovo.patch" || return 1
+  patch -Np1 -i "${srcdir}/23_quirks_studiohybrid_eeepc_and_w251u.patch" || return 1
+  patch -Np1 -i "${srcdir}/25_quirk_nc6110.patch" || return 1
+  patch -Np1 -i "${srcdir}/26_i830-use-lfp-data-ptrs.patch" || return 1
+  patch -Np1 -i "${srcdir}/27_disable_fbc_on_965.patch" || return 1
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  rm -f ${startdir}/pkg/usr/lib/xorg/modules/drivers/i810_drv.so
-  rm -f ${startdir}/pkg/usr/share/man/man4/i810.4*
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-video-mach64/PKGBUILD b/abs/core-testing/xf86-video-mach64/PKGBUILD
new file mode 100644
index 0000000..ed91461
--- /dev/null
+++ b/abs/core-testing/xf86-video-mach64/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 13016 2008-09-25 18:54:26Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-mach64
+pkgver=6.8.0
+pkgrel=2
+_mesaver="7.2"
+pkgdesc="X.org mach64 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('libdrm>=2.3.1' 'libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'mesa>=7.2' 'dri2proto'
+	     'glproto>=1.4.9' 'xf86driproto' 'diffutils')
+conflicts=('xorg-server<1.5.1')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+       mesa-7.1-link-shared.patch)
+md5sums=('6081b8fa50c689d51f85c2fbaf93867e'
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
+
+build() {
+  cd ${startdir}/src/${pkgname}-${pkgver}
+  ./configure --prefix=/usr \
+              --enable-dri || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+
+  cd ${srcdir}/Mesa-${_mesaver}
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=mach64 \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
+  rm -rf ${pkgdir}/usr/include
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+}
diff --git a/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-mach64/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-mga/PKGBUILD b/abs/core-testing/xf86-video-mga/PKGBUILD
index 1d07b1f..5681868 100644
--- a/abs/core-testing/xf86-video-mga/PKGBUILD
+++ b/abs/core-testing/xf86-video-mga/PKGBUILD
@@ -1,22 +1,25 @@
-# $Id: PKGBUILD 4390 2008-07-06 20:07:05Z jgc $
+# $Id: PKGBUILD 13014 2008-09-25 18:53:21Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-mga
 pkgver=1.4.9
-pkgrel=1
+pkgrel=3
 pkgdesc="X.org mga video driver"
-mesaver="7.0.3"
+_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm' 'expat>=2.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3' \
+depends=('libgl>=7.2' 'expat>=2.0.1')
+makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2'
              'xf86driproto' 'glproto>=1.4.9')
+conflicts=('xorg-server<1.5.1')
 options=('!libtool' 'force')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2)
+        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+	mesa-7.1-link-shared.patch)
 md5sums=('11066b84b949cd04300ec819c9c51532'
-         'e6e6379d7793af40a6bc3ce1bace572e')
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
@@ -24,26 +27,22 @@ build() {
               --enable-dri || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
-
-  cd ${startdir}/src/Mesa-${mesaver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = mga" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd ${srcdir}/Mesa-${_mesaver}
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=mga \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
+  rm -rf ${pkgdir}/usr/include
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
 }
diff --git a/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-mga/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-neomagic/PKGBUILD b/abs/core-testing/xf86-video-neomagic/PKGBUILD
index cbe614d..7d47807 100644
--- a/abs/core-testing/xf86-video-neomagic/PKGBUILD
+++ b/abs/core-testing/xf86-video-neomagic/PKGBUILD
@@ -1,22 +1,23 @@
-# $Id: PKGBUILD 3245 2008-06-21 18:12:45Z jgc $
+# $Id: PKGBUILD 22283 2008-12-25 17:06:50Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-neomagic
-pkgver=1.2.1
+pkgver=1.2.2
 pkgrel=1
 pkgdesc="X.org neomagic video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('a72f57fca4f4dff9a2c82eb1fe7456f4')
+md5sums=('896864e1a2d7333c16333a24eac17d00')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-video-nv/PKGBUILD b/abs/core-testing/xf86-video-nv/PKGBUILD
index ad4b2ee..7c74343 100644
--- a/abs/core-testing/xf86-video-nv/PKGBUILD
+++ b/abs/core-testing/xf86-video-nv/PKGBUILD
@@ -1,26 +1,28 @@
-# $Id: PKGBUILD 1904 2008-05-22 18:19:19Z jgc $
+# $Id: PKGBUILD 11446 2008-08-31 15:40:39Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xf86-video-nv
-pkgver=2.1.9
+pkgver=2.1.12
 pkgrel=1
 pkgdesc="X.org nv video driver"
 arch=(i686 x86_64)
+license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 options=('!libtool')
-license=('custom')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('c6b7e52fa18455c22eb040b8d2575ce5')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 
-  install -m644 -D ${startdir}/src/${pkgname}-${pkgver}/COPYING \
-                   ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
+md5sums=('42f12a36d7afc26c817e8e8f5c8b7274')
diff --git a/abs/core-testing/xf86-video-openchrome/LICENSE.txt b/abs/core-testing/xf86-video-openchrome/LICENSE.txt
new file mode 100644
index 0000000..dff1dc3
--- /dev/null
+++ b/abs/core-testing/xf86-video-openchrome/LICENSE.txt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2005-2007 The Openchrome Project  [openchrome.org]
+ * Copyright 2004-2006 Luc Verhaegen.
+ * Copyright 2004-2005 The Unichrome Project  [unichrome.sf.net]
+ * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
diff --git a/abs/core-testing/xf86-video-openchrome/PKGBUILD b/abs/core-testing/xf86-video-openchrome/PKGBUILD
new file mode 100644
index 0000000..235dba8
--- /dev/null
+++ b/abs/core-testing/xf86-video-openchrome/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 11506 2008-08-31 18:01:45Z jgc $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
+
+pkgname=xf86-video-openchrome
+pkgver=0.2.903
+pkgrel=1
+pkgdesc="X.Org Openchrome drivers"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.openchrome.org"
+depends=('unichrome-dri>=7.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'xf86driproto' 'xorg-util-macros' 'libxvmc' 'glproto' 'mesa>=7.1')
+replaces=('openchrome' 'xf86-video-via')
+options=('!libtool' 'force' '!makeflags')
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.4.99.906')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.gz
+	LICENSE.txt)
+md5sums=('bcb3ba67e89824c132790c3a0365c6a5'
+         'addb3cf2671f4cf7e91156952de1627f')
+
+build() {
+  cd ${startdir}/src/${pkgname}-$pkgver || return 1
+  ./configure --prefix=/usr || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+  install -m644 ${srcdir}/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
+}
diff --git a/abs/core-testing/xf86-video-r128/PKGBUILD b/abs/core-testing/xf86-video-r128/PKGBUILD
new file mode 100644
index 0000000..9339f9a
--- /dev/null
+++ b/abs/core-testing/xf86-video-r128/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 13012 2008-09-25 18:50:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-r128
+pkgver=6.8.0
+pkgrel=2
+_mesaver="7.2"
+pkgdesc="X.org ati Rage128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('libdrm>=2.3.1' 'libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2'
+	     'glproto>=1.4.9' 'xf86driproto' 'diffutils')
+conflicts=('xorg-server<1.5.1')
+groups=('xorg-video-drivers')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+       http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+       mesa-7.1-link-shared.patch)
+md5sums=('007bec0c6b07d9d3aeca4da18e561efb'
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
+
+build() {
+  cd ${startdir}/src/${pkgname}-${pkgver}
+  ./configure --prefix=/usr \
+              --enable-dri || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+
+  cd ${srcdir}/Mesa-${_mesaver}
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=r128 \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
+  rm -rf ${pkgdir}/usr/include
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+}
diff --git a/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-r128/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-radeonhd/PKGBUILD b/abs/core-testing/xf86-video-radeonhd/PKGBUILD
index 7173afd..ce29874 100644
--- a/abs/core-testing/xf86-video-radeonhd/PKGBUILD
+++ b/abs/core-testing/xf86-video-radeonhd/PKGBUILD
@@ -1,26 +1,27 @@
-# $Id: PKGBUILD 861 2008-04-23 21:44:36Z juergen $
+# $Id: PKGBUILD 22422 2008-12-26 19:30:38Z jgc $
 # Maintainer:  <juergen@archlinux.org>
 pkgname=xf86-video-radeonhd
-pkgver=1.2.1
+pkgver=1.2.4
 pkgrel=1
 pkgdesc="Experimental Radeon HD video driver for r500 and r600 ATI cards"
 arch=(i686 x86_64)
 url="http://wiki.x.org/wiki/radeonhd"
 license=('custom')
-depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server' 'diffutils')
+depends=('glibc' 'ati-dri>=7.2' 'libdrm' 'libpciaccess')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'diffutils')
+conflicts=('xorg-server<1.5.3')
 options=('!libtool')
 conflicts=('xf86-video-radeonhd-git')
 replaces=('xf86-video-radeonhd-git')
 groups=('xorg-video-drivers')
-source=(ftp://ftp.freedesktop.org/pub/individual/driver/$pkgname-$pkgver.tar.bz2)
-md5sums=('9db15e1f1f891f514ca72dd9a3cc360a')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3c9cfffe7e3d795dde59ea0eef7361b1')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m644 -D ${startdir}/src/${pkgname}-${pkgver}/COPYING \
-                   ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xf86-video-rendition/PKGBUILD b/abs/core-testing/xf86-video-rendition/PKGBUILD
index 20fba5f..6bb78d2 100644
--- a/abs/core-testing/xf86-video-rendition/PKGBUILD
+++ b/abs/core-testing/xf86-video-rendition/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11462 2008-08-31 15:55:46Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-rendition
-pkgver=4.1.3
-pkgrel=4
+pkgver=4.2.0
+pkgrel=1
 pkgdesc="X.org Rendition video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7c03de3804d4c4f6ff59f74050d24b2b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('a8b97feccb32184820d5856fe78d34db')
diff --git a/abs/core-testing/xf86-video-s3/PKGBUILD b/abs/core-testing/xf86-video-s3/PKGBUILD
index c7aefc2..f294fe9 100644
--- a/abs/core-testing/xf86-video-s3/PKGBUILD
+++ b/abs/core-testing/xf86-video-s3/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22275 2008-12-25 16:57:57Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-s3
-pkgver=0.5.0
-pkgrel=4
+pkgver=0.6.1
+pkgrel=1
 pkgdesc="X.org S3 video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a5f1f2f93a50e56bd3aeed009c407337')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('d95ab6445cab477f39adfbbc81006f67')
diff --git a/abs/core-testing/xf86-video-s3virge/PKGBUILD b/abs/core-testing/xf86-video-s3virge/PKGBUILD
index 4a27540..18391fb 100644
--- a/abs/core-testing/xf86-video-s3virge/PKGBUILD
+++ b/abs/core-testing/xf86-video-s3virge/PKGBUILD
@@ -1,49 +1,24 @@
-# $Id: PKGBUILD 3244 2008-06-21 18:11:55Z jgc $
+# $Id: PKGBUILD 22269 2008-12-25 16:53:28Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-s3virge
-pkgver=1.10.1
+pkgver=1.10.2
 pkgrel=1
 pkgdesc="X.org S3 Virge video driver"
-mesaver="7.0.3"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('expat>=2.0' 'libdrm')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 options=(!libtool)
 groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2)
-md5sums=('4a293047e988d4ea1e9e96d3b5793f43'
-         'e6e6379d7793af40a6bc3ce1bace572e')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('69784e4964d75487d81be4eae3d467dd')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
-              --enable-dri || return 1
+              --disable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-
-
-  cd ${startdir}/src/Mesa-${mesaver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = s3v" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-video-savage/PKGBUILD b/abs/core-testing/xf86-video-savage/PKGBUILD
index 99e5324..0cdb7c7 100644
--- a/abs/core-testing/xf86-video-savage/PKGBUILD
+++ b/abs/core-testing/xf86-video-savage/PKGBUILD
@@ -1,21 +1,24 @@
-# $Id: PKGBUILD 3243 2008-06-21 18:08:53Z jgc $
+# $Id: PKGBUILD 13010 2008-09-25 18:47:39Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-savage
 pkgver=2.2.1
-pkgrel=1
+pkgrel=2
 pkgdesc="X.org savage video driver"
-mesaver="7.0.3"
+_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0' 'expat>=2.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'imake' 'mesa>=7.0.3' 'xf86driproto' 'glproto>=1.4.9')
+depends=('libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.1' 'imake' 'mesa>=7.2' 'xf86driproto' 'glproto>=1.4.9')
+conflicts=('xorg-server<1.5.1')
 options=(!libtool)
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.bz2)
+	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+	mesa-7.1-link-shared.patch)
 md5sums=('62b8aba48b54eaefeae87df502bf219c'
-	 'e6e6379d7793af40a6bc3ce1bace572e')
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
@@ -24,26 +27,22 @@ build() {
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 
-  cd ${startdir}/src/Mesa-${mesaver}
-
-  cd configs
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = savage" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd ${startdir}/src/Mesa-${_mesaver}
+  patch -Np1 -i ${srcdir}/mesa-7.1-link-shared.patch
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=savage \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  rm -rf ${pkgdir}/usr/lib/pkgconfig
+  rm -rf ${pkgdir}/usr/include
+  rm -f ${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so
 }
diff --git a/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-savage/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
index 0e785ed..3518f94 100644
--- a/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
+++ b/abs/core-testing/xf86-video-siliconmotion/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 23018 2009-01-01 16:25:18Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-siliconmotion
-pkgver=1.5.1
-pkgrel=4
+pkgver=1.7.0
+pkgrel=1
 pkgdesc="X.org siliconmotion video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f9acffba89d8be200f91bab3d1df80da')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('ee35d7714ce44a2b5ac7ad7b7b7dd75a')
diff --git a/abs/core-testing/xf86-video-sis/PKGBUILD b/abs/core-testing/xf86-video-sis/PKGBUILD
index 02c519d..dfb0625 100644
--- a/abs/core-testing/xf86-video-sis/PKGBUILD
+++ b/abs/core-testing/xf86-video-sis/PKGBUILD
@@ -1,48 +1,48 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22281 2008-12-25 17:05:24Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-sis
-pkgver=0.9.4
-pkgrel=3
+pkgver=0.10.1
+pkgrel=1
 pkgdesc="X.org SiS video driver"
-mesaver="7.0.4"
+_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0' 'expat>=2.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'xf86driproto' 'mesa>=7.0.3rc1' 'glproto>=1.4.9')
+depends=('libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto' 'mesa>=7.1' 'glproto>=1.4.9')
+conflicts=('xorg-server<1.5.1')
 options=('!libtool')
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://voxel.dl.sourceforge.net/sourceforge/mesa3d/MesaLib-${mesaver}.tar.gz)
-md5sums=('43f12cabf770b06170cdd1cdaafdc50f'
-         '909afa3a01ae31478d363837681415ac')
+	http://downloads.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2
+	mesa-7.1-link-shared.patch)
+md5sums=('9f57c2f5ccbd8340db32da1c74083771'
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  cd ${startdir}/src/Mesa-${mesaver}/configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = sis" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/Mesa-${_mesaver}"
+  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=sis \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -rf "${pkgdir}/usr/lib/pkgconfig"
+  rm -rf "${pkgdir}/usr/include"
+  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
 }
diff --git a/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-sis/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-sisusb/PKGBUILD b/abs/core-testing/xf86-video-sisusb/PKGBUILD
index 43992ab..0d205b1 100644
--- a/abs/core-testing/xf86-video-sisusb/PKGBUILD
+++ b/abs/core-testing/xf86-video-sisusb/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11481 2008-08-31 16:45:57Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-sisusb
-pkgver=0.8.1
-pkgrel=4
+pkgver=0.9.0
+pkgrel=1
 pkgdesc="X.org SiS USB video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('cbd669507e4aa35e468905f09b546333')
+md5sums=('7b1f5465f423a859f306f4f1d6306a1b')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-video-tdfx/PKGBUILD b/abs/core-testing/xf86-video-tdfx/PKGBUILD
index 82a75af..0f62948 100644
--- a/abs/core-testing/xf86-video-tdfx/PKGBUILD
+++ b/abs/core-testing/xf86-video-tdfx/PKGBUILD
@@ -1,49 +1,48 @@
-# $Id: PKGBUILD 3259 2008-06-21 18:34:20Z jgc $
+# $Id: PKGBUILD 22277 2008-12-25 17:00:41Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-tdfx
-pkgver=1.4.0
+pkgver=1.4.1
 pkgrel=1
 pkgdesc="X.org tdfx video driver"
-_mesaver="7.0.3"
+_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('expat>=2.0' 'libdrm>=2.3.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'mesa>=7.0.3')
+depends=('libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2')
+conflicts=('xorg-server<1.5.3')
 options=(!libtool)
 groups=('xorg-video-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2)
+        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+	mesa-7.1-link-shared.patch)
+md5sums=('59acf2a4f721f9b7abbd121748467b16'
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  cd ${startdir}/src/Mesa-${_mesaver}
-  cd configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = tdfx" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/Mesa-${_mesaver}"
+  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=tdfx \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -rf "${pkgdir}/usr/lib/pkgconfig"
+  rm -rf "${pkgdir}/usr/include"
+  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
 }
-md5sums=('b13132f24683ef759bfb0c1db5096496'
-         'e6e6379d7793af40a6bc3ce1bace572e')
diff --git a/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-tdfx/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-trident/PKGBUILD b/abs/core-testing/xf86-video-trident/PKGBUILD
index 5616e12..874f185 100644
--- a/abs/core-testing/xf86-video-trident/PKGBUILD
+++ b/abs/core-testing/xf86-video-trident/PKGBUILD
@@ -1,49 +1,49 @@
-# $Id: PKGBUILD 3257 2008-06-21 18:32:30Z jgc $
+# $Id: PKGBUILD 22291 2008-12-25 17:22:27Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-trident
-pkgver=1.3.0
-pkgrel=2
+pkgver=1.3.1
+pkgrel=1
 pkgdesc="X.org Trident video driver"
-_mesaver="7.0.3"
+_mesaver="7.2"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libdrm>=2.3.0' 'expat>=2.0')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'imake' 'mesa>=7.0.3' 'xf86driproto')
+depends=('libgl>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'mesa>=7.2' 'xf86driproto')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-video-drivers')
 options=(!libtool)
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2)
+        http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
+	mesa-7.1-link-shared.patch)
+md5sums=('9f280bef235426394013cb5e1854b823'
+         '04d379292e023df0b0266825cb0dbde5'
+         'f0baa948d9810f268413111ee439d24b')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --enable-dri || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  cd ${startdir}/src/Mesa-${_mesaver}
-  cd configs
-
-  CONFIG="linux-dri-x86"
-  [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
-  echo "EXTRA_LIB_PATH =" >> ${CONFIG}
-  echo "OPT_FLAGS = ${CFLAGS}" >> ${CONFIG}
-  echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
-  echo "USING_EGL = 0" >> ${CONFIG}
-  echo "PROGRAM_DIRS =" >> ${CONFIG}
-  echo "MKDEP = makedepend" >> ${CONFIG}
-  echo "DRI_DIRS = trident" >> ${CONFIG}
-  echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
-  echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
-  echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}
-
-  ln -s ${CONFIG} current
-  cd ${startdir}/src/Mesa-${_mesaver}/src/mesa
-  make linux-solo || return 1
-  cd drivers/dri
-  make DESTDIR=${startdir}/pkg install || return 1
+  cd "${srcdir}/Mesa-${_mesaver}"
+  cd ${srcdir}/Mesa-${pkgver}
+  patch -Np1 -i "${srcdir}/mesa-7.1-link-shared.patch" || return 1
+  ./configure --prefix=/usr \
+    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+    --with-dri-drivers=trident \
+    --enable-glx-tls \
+    --disable-ttm-api \
+    --with-driver=dri \
+    --enable-xcb \
+    --disable-glu \
+    --disable-glut \
+    --disable-glw || return 1
+  make || return 1
+  cd src/mesa/drivers/dri || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -rf "${pkgdir}/usr/lib/pkgconfig"
+  rm -rf "${pkgdir}/usr/include"
+  rm -f "${pkgdir}/usr/lib/xorg/modules/dri/libdricore.so"
 }
-md5sums=('e89799579d0cf3858362bd751469e0bf'
-         'e6e6379d7793af40a6bc3ce1bace572e')
diff --git a/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch b/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch
new file mode 100644
index 0000000..7fdbf14
--- /dev/null
+++ b/abs/core-testing/xf86-video-trident/mesa-7.1-link-shared.patch
@@ -0,0 +1,102 @@
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.dricore mesa-20080814/src/mesa/drivers/dri/Makefile
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile	2008-08-14 16:18:20.000000000 +1000
+@@ -6,12 +6,17 @@ include $(TOP)/configs/current
+ 
+ 
+ 
+-default: $(TOP)/$(LIB_DIR) subdirs
++default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/libdricore.so subdirs
+ 
+ 
+ $(TOP)/$(LIB_DIR):
+ 	-mkdir $(TOP)/$(LIB_DIR)
+ 
++libdricore.so:
++	gcc -shared -o libdricore.so -Wl,--whole-archive ../../libmesa.a -Wl,--no-whole-archive -lm -lpthread -lc
++
++$(TOP)/$(LIB_DIR)/libdricore.so: $(TOP)/$(LIB_DIR) libdricore.so
++	$(INSTALL) libdricore.so $(TOP)/$(LIB_DIR) 
+ 
+ subdirs:
+ 	@for dir in $(DRI_DIRS) ; do \
+@@ -31,12 +36,14 @@ dri.pc: dri.pc.in
+ 	$(pcedit) $< > $@
+ 
+ 
+-install: dri.pc
++install: dri.pc $(TOP)/$(LIB_DIR)/libdricore.so
+ 	@for dir in $(DRI_DIRS) ; do \
+ 		if [ -d $$dir ] ; then \
+ 			(cd $$dir && $(MAKE) install) || exit 1 ; \
+ 		fi \
+ 	done
++	$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
++	$(INSTALL) -m 755 $(TOP)/$(LIB_DIR)/libdricore.so $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
+ 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+ 	$(INSTALL) -m 0644 $(TOP)/include/GL/internal/dri_interface.h \
+ 	  $(DESTDIR)$(INSTALL_INC_DIR)/GL/internal
+@@ -52,5 +59,6 @@ clean:
+ 			(cd $$dir && $(MAKE) clean) ; \
+ 		fi \
+ 	done
++	-rm -f libdricore.so $(TOP)/$(LIB_DIR)/libdricore.so
+ 	-rm -f common/*.o
+ 	-rm -f *.pc
+diff -up mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore mesa-20080814/src/mesa/drivers/dri/Makefile.template
+--- mesa-20080814/src/mesa/drivers/dri/Makefile.template.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/drivers/dri/Makefile.template	2008-08-14 16:19:37.000000000 +1000
+@@ -1,6 +1,6 @@
+ # -*-makefile-*-
+ 
+-MESA_MODULES = $(TOP)/src/mesa/libmesa.a
++MESA_MODULES = $(TOP)/$(LIB_DIR)/libdricore.so
+ 
+ COMMON_SOURCES = \
+         ../common/utils.c \
+@@ -64,7 +64,9 @@ default: symlinks depend $(LIBNAME) $(TO
+ 
+ $(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
+ 	$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+-		$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
++		$(OBJECTS) $(WINOBJ) \
++		-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore \
++		$(DRI_LIB_DEPS)
+ 
+ 
+ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
+diff -up mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore mesa-20080814/src/mesa/x86/read_rgba_span_x86.S
+--- mesa-20080814/src/mesa/x86/read_rgba_span_x86.S.dricore	2008-08-14 02:28:38.000000000 +1000
++++ mesa-20080814/src/mesa/x86/read_rgba_span_x86.S	2008-08-14 16:16:49.000000000 +1000
+@@ -77,7 +77,6 @@
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_MMX
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_MMX
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_MMX, @function
+ _generic_read_RGBA_span_BGRA8888_REV_MMX:
+ 	pushl	%ebx
+@@ -172,7 +171,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX
+  */
+ 
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE:
+ 	pushl	%esi
+@@ -335,7 +333,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2
+-.hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2
+ 	.type	_generic_read_RGBA_span_BGRA8888_REV_SSE2, @function
+ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
+ 	pushl	%esi
+@@ -494,7 +491,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE
+ 
+ 	.text
+ 	.globl	_generic_read_RGBA_span_RGB565_MMX
+-        .hidden _generic_read_RGBA_span_RGB565_MMX
+ 	.type	_generic_read_RGBA_span_RGB565_MMX, @function
+ 
+ _generic_read_RGBA_span_RGB565_MMX:
diff --git a/abs/core-testing/xf86-video-tseng/PKGBUILD b/abs/core-testing/xf86-video-tseng/PKGBUILD
index 6863c46..f5909d7 100644
--- a/abs/core-testing/xf86-video-tseng/PKGBUILD
+++ b/abs/core-testing/xf86-video-tseng/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 22279 2008-12-25 17:02:55Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-tseng
-pkgver=1.1.1
-pkgrel=4
+pkgver=1.2.1
+pkgrel=1
 pkgdesc="X.org tseng video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2f687eddae5dafa5dcc05116561e267c')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
-md5sums=('488aa9c3ec7a95e6589afa4b50bec8b4')
diff --git a/abs/core-testing/xf86-video-unichrome/PKGBUILD b/abs/core-testing/xf86-video-unichrome/PKGBUILD
index 2f618ca..7f3bc57 100644
--- a/abs/core-testing/xf86-video-unichrome/PKGBUILD
+++ b/abs/core-testing/xf86-video-unichrome/PKGBUILD
@@ -1,26 +1,23 @@
-# $Id: PKGBUILD 3256 2008-06-21 18:31:47Z jgc $
+# $Id: PKGBUILD 22301 2008-12-25 18:28:12Z jgc $
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-unichrome
-pkgver=0.2.6
-pkgrel=8
+pkgver=0.2.7
+pkgrel=0.1
+_gitversion=1464eb9ecb178163af0e85443c3e591755c8c320
 pkgdesc="Unichrome video drivers for X.Org"
 arch=(i686 x86_64)
 url="http://unichrome.sf.net/"
-depends=('unichrome-dri>=7.0.3')
-makedepends=('pkgconfig' 'xorg-server>=1.4.0.90' 'xorg-util-macros' 'xf86driproto' \
-             'glproto' 'mesa>=7.0.3' 'autoconf' 'automake' 'libtool')
+depends=('unichrome-dri>=7.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xorg-util-macros' 'xf86driproto' 'glproto' 'mesa>=7.2' 'autoconf' 'automake' 'libtool')
 options=('!libtool')
-conflicts=('xf86-video-via' 'openchrome')
-groups=('xorg-video-drivers')
-source=(http://downloads.sf.net/unichrome/${pkgname}-${pkgver}.tar.gz
-	fix-defines.patch)
-md5sums=('fd81a739ae8145bb9729fa9665ef426c' '84142497ed91048bb2d0d082ce8a0229')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.5.3')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2)
+md5sums=('dfef1e3b9ed24d50938ea5ee6f708457')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -Np1 -i ${startdir}/src/fix-defines.patch || return 1
+  cd "${srcdir}/${pkgname}-${_gitversion}"
   ./autogen.sh --prefix=/usr \
                --enable-dri
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-video-v4l/PKGBUILD b/abs/core-testing/xf86-video-v4l/PKGBUILD
index dc8ba80..518e267 100644
--- a/abs/core-testing/xf86-video-v4l/PKGBUILD
+++ b/abs/core-testing/xf86-video-v4l/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11496 2008-08-31 16:52:37Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-v4l
-pkgver=0.1.1
-pkgrel=4
+pkgver=0.2.0
+pkgrel=1
 pkgdesc="X.org v4l video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('69339c38eba2cebc357d67e7a755d734')
+md5sums=('2251ae2a0a905764941cd7b098e85ad1')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
diff --git a/abs/core-testing/xf86-video-vesa/PKGBUILD b/abs/core-testing/xf86-video-vesa/PKGBUILD
index ed4acc7..bbccb88 100644
--- a/abs/core-testing/xf86-video-vesa/PKGBUILD
+++ b/abs/core-testing/xf86-video-vesa/PKGBUILD
@@ -1,21 +1,20 @@
-# $Id: PKGBUILD 5566 2008-07-18 20:48:52Z jgc $
+# $Id: PKGBUILD 22267 2008-12-25 16:51:23Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-vesa
-pkgver=1.3.0
-pkgrel=6
+pkgver=2.1.0
+pkgrel=1
 pkgdesc="X.org vesa video driver"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3')
+conflicts=('xorg-server<1.5.3')
 groups=('xorg' 'xorg-video-drivers')
-options=('!libtool' 'force')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-	COPYING)
-md5sums=('4a307852f3b4850e436a41dab2a73676'
-         'e5418e7a75e21268637984e70265e146')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d813269613b4d63ff6dbfbfbd104cc84')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
@@ -23,5 +22,5 @@ build() {
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
   install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 ${srcdir}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
 }
diff --git a/abs/core-testing/xf86-video-vga/PKGBUILD b/abs/core-testing/xf86-video-vga/PKGBUILD
index 1ac84a7..034c440 100644
--- a/abs/core-testing/xf86-video-vga/PKGBUILD
+++ b/abs/core-testing/xf86-video-vga/PKGBUILD
@@ -1,23 +1,29 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 15043 2008-10-12 12:14:52Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-vga
 pkgver=4.1.0
-pkgrel=4
+pkgrel=6
 pkgdesc="X.org VGA 16 color video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.1.1')
-groups=('xorg-video-drivers')
+makedepends=('pkgconfig' 'xorg-server>=1.5.2')
+conflicts=('xorg-server<1.5.2')
 options=('!libtool')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('b93e5fe9757db779a75cd3ce97b9613d')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+	pciaccess.patch)
+md5sums=('b93e5fe9757db779a75cd3ce97b9613d'
+         'fe3a45179f51fb86215f6fd2b5ac0747')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/pciaccess.patch" || return 1
+  libtoolize --force || return 1
+  aclocal || return 1
+  autoconf || return 1
+  automake || return 1
+  ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 }
diff --git a/abs/core-testing/xf86-video-vga/pciaccess.patch b/abs/core-testing/xf86-video-vga/pciaccess.patch
new file mode 100644
index 0000000..141701f
--- /dev/null
+++ b/abs/core-testing/xf86-video-vga/pciaccess.patch
@@ -0,0 +1,371 @@
+From: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date: Fri, 18 Jul 2008 21:27:26 +0000 (-0300)
+Subject: Add libpciaccess and remove xf1bpp and xf4bpp support.
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-vga.git;a=commitdiff;h=97e2d12548921d92b6dc2dcce8abee48f25981d2
+
+Add libpciaccess and remove xf1bpp and xf4bpp support.
+
+  The driver is not fully functional, starts at 320x200, but may require
+running something like vbetool post before starting the X Server, and does
+not restore console as usually linux consoles use vesafb, but should work
+correctly if console is in a "standard vga mode".
+---
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -57,6 +57,22 @@ PKG_CHECK_MODULES(XORG, [xorg-server >= 
+ sdkdir=$(pkg-config --variable=sdkdir xorg-server)
+ 
+ # Checks for libraries.
++SAVE_CPPFLAGS="$CPPFLAGS"
++CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
++AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
++              [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
++              [#include "xorg-server.h"])
++AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 1bpp support])],[])
++AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[])
++CPPFLAGS="$SAVE_CPPFLAGS"
++
++if test "x$XSERVER_LIBPCIACCESS" = xyes; then
++    PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
++    XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
++fi
++AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
++
++# Checks for libraries.
+ 
+ # Checks for header files.
+ AC_HEADER_STDC
+--- a/src/generic.c
++++ b/src/generic.c
+@@ -50,8 +50,13 @@
+ 
+ #include "fb.h"
+ 
++#if HAVE_XF4BPP
+ #include "xf4bpp.h"
++#endif
++
++#if HAVE_XF1BPP
+ #include "xf1bpp.h"
++#endif
+ 
+ #include "shadowfb.h"
+ 
+@@ -62,6 +67,10 @@
+ #include "xf86Resources.h"
+ #include "xf86int10.h"
+ 
++#ifdef XSERVER_LIBPCIACCESS
++#include <pciaccess.h>
++#endif
++
+ /* Some systems #define VGA for their own purposes */
+ #undef VGA
+ 
+@@ -79,10 +88,31 @@
+ #define CLOCK_TOLERANCE 2000 /* Clock matching tolerance (2MHz) */
+ #endif
+ 
++/*
++ * This structure is used to wrap the screen's CloseScreen vector.
++ */
++typedef struct _GenericRec
++{
++    Bool ShadowFB;
++    Bool KGAUniversal;
++    CARD8 * ShadowPtr;
++    CARD32 ShadowPitch;
++    CloseScreenProcPtr CloseScreen;
++    OptionInfoPtr Options;
++#ifdef XSERVER_LIBPCIACCESS
++    struct pci_device *pciInfo;
++#endif
++} GenericRec, *GenericPtr;
++
++
+ /* Forward definitions */
+ static const OptionInfoRec *GenericAvailableOptions(int chipid, int busid);
+ static void                 GenericIdentify(int);
+ static Bool                 GenericProbe(DriverPtr, int);
++#ifdef XSERVER_LIBPCIACCESS
++static Bool GenericPciProbe(DriverPtr drv, int entity_num,
++			    struct pci_device *dev, intptr_t match_data);
++#endif
+ static Bool                 GenericPreInit(ScrnInfoPtr, int);
+ static Bool                 GenericScreenInit(int, ScreenPtr, int, char **);
+ static Bool                 GenericSwitchMode(int, DisplayModePtr, int);
+@@ -97,6 +127,24 @@ static Bool                 GenericMapMe
+ 
+ static ModeStatus GenericValidMode(int, DisplayModePtr, Bool, int);
+ 
++static GenericPtr GenericGetRec(ScrnInfoPtr pScreenInfo);
++
++enum GenericTypes
++{
++    CHIP_VGA_GENERIC
++};
++
++#ifdef XSERVER_LIBPCIACCESS
++static const struct pci_id_match generic_device_match[] = {
++    {
++	PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
++	0x00030000, 0x00ffffff, CHIP_VGA_GENERIC
++    },
++
++    { 0, 0, 0 },
++};
++#endif
++
+ /* The root of all evil... */
+ _X_EXPORT DriverRec VGA =
+ {
+@@ -106,7 +154,13 @@ _X_EXPORT DriverRec VGA =
+     GenericProbe,
+     GenericAvailableOptions,
+     NULL,
+-    0
++    0,
++    NULL,
++
++#ifdef XSERVER_LIBPCIACCESS
++    generic_device_match,
++    GenericPciProbe
++#endif
+ };
+ 
+ typedef enum
+@@ -146,8 +200,12 @@ static const char *vgahwSymbols[] =
+ #ifdef XFree86LOADER
+ static const char *miscfbSymbols[] =
+ {
++#if HAVE_XF1BPP
+     "xf1bppScreenInit",
++#endif
++#if HAVE_XF4BPP
+     "xf4bppScreenInit",
++#endif
+     NULL
+ };
+ #endif
+@@ -210,7 +268,13 @@ GenericSetup(pointer Module, pointer Opt
+     if (!Initialised)
+     {
+ 	Initialised = TRUE;
+-	xf86AddDriver(&VGA, Module, 0);
++	xf86AddDriver(&VGA, Module,
++#ifdef XSERVER_LIBPCIACCESS
++		      HaveDriverFuncs
++#else
++		      0
++#endif
++		      );
+ 	LoaderRefSymLists(vgahwSymbols, miscfbSymbols, fbSymbols,
+ 			  shadowfbSymbols, int10Symbols, NULL);
+ 	return (pointer)TRUE;
+@@ -224,11 +288,6 @@ GenericSetup(pointer Module, pointer Opt
+ #endif
+ 
+ 
+-enum GenericTypes
+-{
+-    CHIP_VGA_GENERIC
+-};
+-
+ /* Supported chipsets */
+ static SymTabRec GenericChipsets[] =
+ {
+@@ -236,11 +295,13 @@ static SymTabRec GenericChipsets[] =
+     {-1,               NULL}
+ };
+ 
++#ifndef XSERVER_LIBPCIACCESS
+ static PciChipsets GenericPCIchipsets[] =
+ {
+     {CHIP_VGA_GENERIC, PCI_CHIP_VGA, RES_SHARED_VGA},
+     {-1,               -1,           RES_UNDEFINED},
+ };
++#endif
+ 
+ static IsaChipsets GenericISAchipsets[] =
+ {
+@@ -267,6 +328,37 @@ GenericAvailableOptions(int chipid, int 
+  * do a minimal probe for supported hardware.
+  */
+ 
++#ifdef XSERVER_LIBPCIACCESS
++static Bool
++GenericPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
++		intptr_t match_data)
++{
++    ScrnInfoPtr pScrn;
++
++    pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
++				NULL, NULL, NULL, NULL, NULL);
++    if (pScrn != NULL) {
++	GenericPtr pGeneric = GenericGetRec(pScrn);
++
++	pScrn->driverVersion = VGA_VERSION_CURRENT;
++	pScrn->driverName    = VGA_DRIVER_NAME;
++	pScrn->name	     = VGA_NAME;
++	pScrn->Probe	     = GenericProbe;
++	pScrn->PreInit       = GenericPreInit;
++	pScrn->ScreenInit    = GenericScreenInit;
++	pScrn->SwitchMode    = GenericSwitchMode;
++	pScrn->AdjustFrame   = GenericAdjustFrame;
++	pScrn->EnterVT       = GenericEnterVT;
++	pScrn->LeaveVT       = GenericLeaveVT;
++	pScrn->FreeScreen    = GenericFreeScreen;
++
++	pGeneric->pciInfo    = dev;
++    }
++
++    return (pScrn != NULL);
++}
++#endif
++
+ static Bool
+ GenericProbe(DriverPtr drv, int flags)
+ {
+@@ -283,6 +375,7 @@ GenericProbe(DriverPtr drv, int flags)
+     if ((numDevSections = xf86MatchDevice(VGA_NAME, &devSections)) <= 0)
+ 	return FALSE;
+ 
++#ifndef XSERVER_LIBPCIACCESS
+     /* PCI BUS */
+     if (xf86GetPciVideoInfo())
+     {
+@@ -324,6 +417,7 @@ GenericProbe(DriverPtr drv, int flags)
+ 	    xfree(usedChips);
+ 	}
+     }
++#endif
+ 
+     /* Isa Bus */
+     numUsed = xf86MatchIsaInstances(VGA_NAME, GenericChipsets,
+@@ -391,20 +485,6 @@ VGAFindIsaDevice(GDevPtr dev)
+     return (int)CHIP_VGA_GENERIC;
+ }
+ 
+-/*
+- * This structure is used to wrap the screen's CloseScreen vector.
+- */
+-typedef struct _GenericRec
+-{
+-    Bool ShadowFB;
+-    Bool KGAUniversal;
+-    CARD8 * ShadowPtr;
+-    CARD32 ShadowPitch;
+-    CloseScreenProcPtr CloseScreen;
+-    OptionInfoPtr Options;
+-} GenericRec, *GenericPtr;
+-
+-
+ static GenericPtr
+ GenericGetRec(ScrnInfoPtr pScreenInfo)
+ {
+@@ -509,8 +589,14 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
+ 
+     switch (pScreenInfo->depth)
+     {
+-	case 1:  Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break;
+-	case 4:  Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break;
++	case 1:
++#if HAVE_XF1BPP
++	Module = "xf1bpp"; Sym = "xf1bppScreenInit";  break;
++#endif
++	case 4:
++#if HAVE_XF4BPP
++	Module = "xf4bpp"; Sym = "xf4bppScreenInit";  break;
++#endif
+ 	case 8:  Module = "fb";                                break;
+ 
+ 	default:
+@@ -673,6 +759,8 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
+     /* Set display resolution */
+     xf86SetDpi(pScreenInfo, 0, 0);
+ 
++
++#if HAVE_XF1BPP && HAVE_XF4BPP
+     if (xf86ReturnOptValBool(pGenericPriv->Options, OPTION_SHADOW_FB, FALSE))
+     {
+ 	pGenericPriv->ShadowFB = TRUE;
+@@ -688,7 +776,7 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
+ 		   "Enabling universal \"KGA\" treatment.\n");
+     }
+ 
+-#ifdef SPECIAL_FB_BYTE_ACCESS
++#  ifdef SPECIAL_FB_BYTE_ACCESS
+     if (!pGenericPriv->ShadowFB && (pScreenInfo->depth == 4))
+     {
+ 	xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+@@ -696,8 +784,13 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, 
+ 	    "  ShadowFB enabled.\n");
+ 	pGenericPriv->ShadowFB = TRUE;
+     }
++#  endif
++
++#else
++    pGenericPriv->ShadowFB = TRUE;
+ #endif
+ 
++
+     if (pGenericPriv->ShadowFB)
+     {
+ 	pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;
+@@ -1378,6 +1471,7 @@ GenericScreenInit(int scrnIndex, ScreenP
+ #endif
+ 		ShadowFBInit(pScreen, GenericRefreshArea1bpp);
+ 	    }
++#if HAVE_XF1BPP
+ 	    else
+ 	    {
+ 		Inited = xf1bppScreenInit(pScreen, pvgaHW->Base,
+@@ -1386,6 +1480,7 @@ GenericScreenInit(int scrnIndex, ScreenP
+ 					  pScreenInfo->xDpi, pScreenInfo->yDpi,
+ 					  pScreenInfo->displayWidth);
+ 	    }
++#endif
+ 	    break;
+ 	case 4:
+ 	    if (pGenericPriv->ShadowFB)
+@@ -1410,6 +1505,7 @@ GenericScreenInit(int scrnIndex, ScreenP
+ #endif
+ 		ShadowFBInit(pScreen, GenericRefreshArea4bpp);
+ 	    }
++#if HAVE_XF4BPP
+ 	    else
+ 	    {
+ 		Inited = xf4bppScreenInit(pScreen, pvgaHW->Base,
+@@ -1418,6 +1514,7 @@ GenericScreenInit(int scrnIndex, ScreenP
+ 					  pScreenInfo->xDpi, pScreenInfo->yDpi,
+ 					  pScreenInfo->displayWidth);
+ 	    }
++#endif
+ 	    break;
+ 	case 8:
+ 	    Inited = fbScreenInit(pScreen, pvgaHW->Base,
+@@ -1579,6 +1676,9 @@ GenericMapMem(ScrnInfoPtr scrp)
+ {
+     vgaHWPtr hwp = VGAHWPTR(scrp);
+     int scr_index = scrp->scrnIndex;
++#ifdef XSERVER_LIBPCIACCESS
++    GenericPtr pPriv = GenericGetRec(scrp);
++#endif
+ 
+     if (hwp->Base)
+ 	return TRUE;
+@@ -1589,7 +1689,12 @@ GenericMapMem(ScrnInfoPtr scrp)
+     if (hwp->MapPhys == 0)
+ 	hwp->MapPhys = VGA_DEFAULT_PHYS_ADDR;
+ 
+-    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO, hwp->Tag,
++    hwp->Base = xf86MapDomainMemory(scr_index, VIDMEM_MMIO,
++#ifdef XSERVER_LIBPCIACCESS
++				    pPriv->pciInfo,
++#else
++				    hwp->Tag,
++#endif
+ 				    hwp->MapPhys, hwp->MapSize);
+     return hwp->Base != NULL;
+ }
diff --git a/abs/core-testing/xf86-video-vmware/PKGBUILD b/abs/core-testing/xf86-video-vmware/PKGBUILD
index 5992099..f259c2e 100644
--- a/abs/core-testing/xf86-video-vmware/PKGBUILD
+++ b/abs/core-testing/xf86-video-vmware/PKGBUILD
@@ -1,18 +1,19 @@
-# $Id: PKGBUILD 3242 2008-06-21 18:06:18Z jgc $
+# $Id: PKGBUILD 11487 2008-08-31 16:48:39Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-vmware
-pkgver=10.16.2
+pkgver=10.16.5
 pkgrel=1
 pkgdesc="X.org vmware video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906' 'randrproto' 'renderproto' 'xextproto' 'xineramaproto' 'videoproto')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('d79b660e1effb86628930e5c01989216')
+md5sums=('6d78c82ea7c2bb0fcb587d7bb4e8f60a')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
diff --git a/abs/core-testing/xf86-video-voodoo/PKGBUILD b/abs/core-testing/xf86-video-voodoo/PKGBUILD
index bbbc518..d35e2ac 100644
--- a/abs/core-testing/xf86-video-voodoo/PKGBUILD
+++ b/abs/core-testing/xf86-video-voodoo/PKGBUILD
@@ -1,23 +1,23 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 11484 2008-08-31 16:48:17Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xf86-video-voodoo
-pkgver=1.1.1
-pkgrel=4
+pkgver=1.2.0
+pkgrel=1
 pkgdesc="X.org voodoo video driver"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('pkgconfig' 'xorg-server>=1.2.0')
+makedepends=('pkgconfig' 'xorg-server>=1.4.99.906')
+conflicts=('xorg-server<1.4.99.906')
 groups=('xorg-video-drivers')
 options=('!libtool')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  ./configure --prefix=/usr \
-              --build=${CHOST} --host=${CHOST}
+  ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR=${startdir}/pkg install || return 1
 }
-md5sums=('bc878e795688b49a595b355482d27174')
+md5sums=('7c681d9b57f5e1f798263fc1a9d99245')
diff --git a/abs/core-testing/xkeyboard-config/PKGBUILD b/abs/core-testing/xkeyboard-config/PKGBUILD
index 5b26253..abac013 100644
--- a/abs/core-testing/xkeyboard-config/PKGBUILD
+++ b/abs/core-testing/xkeyboard-config/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 7542 2008-08-02 21:31:59Z jgc $
-# Maintainer: Alexander Baldeck <kth5@archlinux.org>
+# $Id: PKGBUILD 22425 2008-12-26 19:55:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xkeyboard-config
-pkgver=1.3
-pkgrel=1
+pkgver=1.4
+pkgrel=2
 pkgdesc="X keyboard configuration files"
 arch=(i686 x86_64)
 license=('custom')
@@ -12,19 +12,21 @@ makedepends=('perlxml' 'pkgconfig')
 provides=('xkbdata')
 replaces=('xkbdata')
 conflicts=('xkbdata')
-source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2)
-md5sums=('d9e9f69f9c6ef5c5a8255cfbe6a57d51')
+source=(http://xlibs.freedesktop.org/xkbdesc/xkeyboard-config-${pkgver}.tar.bz2
+	fix-abnt2.patch)
+md5sums=('a9fe7efbc67a6966c4d4501f0cf88073' '5af20ec00a42a051cf0d7bcb572471df')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/fix-abnt2.patch" || return 1
   ./configure --prefix=/usr \
               --with-xkb-base=/usr/share/X11/xkb \
               --with-xkb-rules-symlink=xorg \
               --enable-compat-rules=yes || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  rm -f ${startdir}/pkg/usr/share/X11/xkb/compiled || return 1
-  install -m755 -d ${startdir}/pkg/var/lib/xkb
-  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  rm -f "${pkgdir}/usr/share/X11/xkb/compiled" || return 1
+  install -m755 -d "${pkgdir}/var/lib/xkb"
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xkeyboard-config/fix-abnt2.patch b/abs/core-testing/xkeyboard-config/fix-abnt2.patch
new file mode 100644
index 0000000..a451df8
--- /dev/null
+++ b/abs/core-testing/xkeyboard-config/fix-abnt2.patch
@@ -0,0 +1,20 @@
+From b67326a9b271332c5bef23115d9c4ac7e7b2e6d9 Mon Sep 17 00:00:00 2001
+From: Sergey V. Udaltsov<svu@gnome.org>
+Date: Wed, 26  Nov  2008  23:19:41  +0000
+Subject: fixed abnt2 keycodes, b.fd.o#18712
+
+---
+diff --git a/keycodes/evdev b/keycodes/evdev
+index 760e2d0..9da2cd5 100644
+--- a/keycodes/evdev
++++ b/keycodes/evdev
+@@ -311,6 +311,7 @@ xkb_keycodes "jp106" {
+ // For brazilian ABNT2 keyboard.
+ xkb_keycodes "abnt2" {
+     include "evdev(evdev)"
++    <KPPT> = 129;
+ };
+ 
+ // PC98
+--
+cgit v0.8.1-24-ge5fb
diff --git a/abs/core-testing/xorg-apps/PKGBUILD b/abs/core-testing/xorg-apps/PKGBUILD
index dae4b4e..adaccd2 100644
--- a/abs/core-testing/xorg-apps/PKGBUILD
+++ b/abs/core-testing/xorg-apps/PKGBUILD
@@ -1,22 +1,21 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id: PKGBUILD 19081 2008-11-14 21:07:55Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xorg-apps
-pkgver=1.0.3
-pkgrel=3
+pkgver=7.4
+pkgrel=1
 pkgdesc="Various X.Org applications"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=(libxcursor libxkbfile libpng libxft libfontenc libxaw)
 makedepends=(pkgconfig xbitmaps)
-
 source=(${url}/releases/individual/app/oclock-1.0.1.tar.bz2
         ${url}/releases/individual/app/luit-1.0.3.tar.bz2
-        ${url}/releases/individual/app/xclock-1.0.2.tar.bz2
+        ${url}/releases/individual/app/xclock-1.0.3.tar.bz2
         ${url}/releases/individual/app/xpr-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xwd-1.0.1.tar.bz2
+        ${url}/releases/individual/app/xwd-1.0.2.tar.bz2
         ${url}/releases/individual/app/xwud-1.0.1.tar.bz2
-        ${url}/releases/individual/app/x11perf-1.4.1.tar.bz2
+        ${url}/releases/individual/app/x11perf-1.5.tar.bz2
         ${url}/releases/individual/app/xbiff-1.0.1.tar.bz2
         ${url}/releases/individual/app/xclipboard-1.0.1.tar.bz2
         ${url}/releases/individual/app/xconsole-1.0.3.tar.bz2
@@ -26,14 +25,35 @@ source=(${url}/releases/individual/app/oclock-1.0.1.tar.bz2
         ${url}/releases/individual/app/xload-1.0.2.tar.bz2
         ${url}/releases/individual/app/xlogo-1.0.1.tar.bz2
         ${url}/releases/individual/app/xmag-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xmessage-1.0.1.tar.bz2
+        ${url}/releases/individual/app/xmessage-1.0.2.tar.bz2
         ${url}/releases/individual/app/xcalc-1.0.2.tar.bz2
-	${url}/releases/individual/app/xman-1.0.2.tar.bz2
-	${url}/releases/individual/app/xedit-1.0.2.tar.bz2
+	${url}/releases/individual/app/xman-1.0.3.tar.bz2
+	${url}/releases/individual/app/xedit-1.1.2.tar.bz2
 	${url}/releases/individual/app/xmh-1.0.1.tar.bz2)
+md5sums=('91f49547f9ed3cd0137c8b7c3183e360'
+         'b01e4f71c20fc1c79ed727759c1df40c'
+         '2b1a3d030d87e62a591db8ee4c0072e6'
+         '6b3a6896081f628bf5a2c9129417c86f'
+         '0a6ef08a2ac08ad5c4dd1522eb3788a3'
+         '6e3c5d0297d88e890b6f5df31f73dd60'
+         '31283bfc3c78718ac1bd71e510d4e774'
+         '404f5add4537d22dd109c33e518a5190'
+         '2c6ecedb10dc51adbb64c95f22fd99c2'
+         '0e1a3110bebabecc2897d67a973526b0'
+         '6fc90896b8c786cb1a2100b4167f7874'
+         '033f14f7c4e30d1f4edbb22d5ef86883'
+         'f66d76abb0f75514ca32272e23cca757'
+         'b41ed6b4bcfc9897366c27a94d2bf150'
+         '4c5482552f38a7d42398a694cc9b2ee6'
+         '7c6a783e42c88360ac31d259a864a19d'
+         'b4b561ef11fd184989a6062962e86748'
+         'd31a99795b9668f047aa11bf36df6df0'
+         '3d3a4b310a65ccce82472ef83acbbf97'
+         '67193be728414d45a1922911e6437991'
+         '656bcbdd41818a8b5a9f7dba77a3eeba')
 
 build() {
-  cd ${startdir}/src
+  cd "${srcdir}"
   for i in *; do
     if [ -d "${i}" ]; then
       pushd "${i}"
@@ -47,32 +67,11 @@ build() {
 	      -i Makefile.* || return 1
 	;;
       esac
-      ./configure --prefix=/usr --disable-xprint \
+      ./configure --prefix=/usr --disable-xprint --mandir=/usr/share/man \
                   --with-localealiasfile=/usr/share/X11/locale/locale.alias
       make || return 1
-      make DESTDIR=${startdir}/pkg install || return 1
+      make DESTDIR="${pkgdir}" install || return 1
       popd
     fi
   done
 }
-md5sums=('91f49547f9ed3cd0137c8b7c3183e360'
-         'b01e4f71c20fc1c79ed727759c1df40c'
-         '6b930326f71993fb54b7203902b387cd'
-         '6b3a6896081f628bf5a2c9129417c86f'
-         '911addfb7fa402217ddac63e5c1d97c7'
-         '6e3c5d0297d88e890b6f5df31f73dd60'
-         'fd06c8b8e3572a0e14af65a49e0dd7d1'
-         '404f5add4537d22dd109c33e518a5190'
-         '2c6ecedb10dc51adbb64c95f22fd99c2'
-         '0e1a3110bebabecc2897d67a973526b0'
-         '6fc90896b8c786cb1a2100b4167f7874'
-         '033f14f7c4e30d1f4edbb22d5ef86883'
-         'f66d76abb0f75514ca32272e23cca757'
-         'b41ed6b4bcfc9897366c27a94d2bf150'
-         '4c5482552f38a7d42398a694cc9b2ee6'
-         '7c6a783e42c88360ac31d259a864a19d'
-         'b3674c3a00a089764d86aa94e257ccec'
-         'd31a99795b9668f047aa11bf36df6df0'
-         '855f2dbfa2aff58b8b9cd6a1c1120fad'
-         'c56160e93c24ddf17e69891ed50deb72'
-         '656bcbdd41818a8b5a9f7dba77a3eeba')
diff --git a/abs/core-testing/xorg-server-utils/PKGBUILD b/abs/core-testing/xorg-server-utils/PKGBUILD
index eb30890..84b4d12 100644
--- a/abs/core-testing/xorg-server-utils/PKGBUILD
+++ b/abs/core-testing/xorg-server-utils/PKGBUILD
@@ -1,17 +1,15 @@
-# $Id: PKGBUILD 3241 2008-06-21 18:04:39Z jgc $
+# $Id: PKGBUILD 19183 2008-11-16 22:56:53Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xorg-server-utils
-pkgver=7.3
-pkgrel=1
+pkgver=7.4
+pkgrel=2
 pkgdesc="X.Org utilities required by xorg-server"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxfontcache' 'libxi' 'liblbxutil' 'libxrandr>=1.2.1' 'libxxf86misc'
-         'libxaw' 'libxxf86vm' 'libxtrap' 'mcpp>=2.6' 'xtrans')
-makedepends=('pkgconfig' 'xbitmaps' 'xproxymngproto')
+depends=('libxfontcache' 'libxi' 'libxmu' 'libxxf86misc' 'libxrandr' 'libxxf86vm' 'mcpp>=2.6')
+makedepends=('pkgconfig' 'xbitmaps' 'bigreqsproto' 'xtrans')
 source=(${url}/releases/individual/app/iceauth-1.0.2.tar.bz2
-        ${url}/releases/individual/app/lbxproxy-1.0.1.tar.bz2
         ${url}/releases/individual/app/rgb-1.0.3.tar.bz2
         ${url}/releases/individual/app/sessreg-1.0.4.tar.bz2
         ${url}/releases/individual/app/xcmsdb-1.0.1.tar.bz2
@@ -24,13 +22,8 @@ source=(${url}/releases/individual/app/iceauth-1.0.2.tar.bz2
         ${url}/releases/individual/app/xrefresh-1.0.2.tar.bz2
         ${url}/releases/individual/app/xset-1.0.4.tar.bz2
         ${url}/releases/individual/app/xsetmode-1.0.0.tar.bz2
-        ${url}/releases/individual/app/xsetpointer-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xsetroot-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xstdcmap-1.0.1.tar.bz2
-        ${url}/releases/individual/app/xtrap-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xvidtune-1.0.1.tar.bz2)
+        ${url}/releases/individual/app/xsetroot-1.0.2.tar.bz2)
 md5sums=('7ab8b64edf0212a9d9a3c8129901a450'
-         '9d5045a5c76b1fe360221b967a5aa0e9'
          '44ea16cc3104de6401bc74035f642357'
          '839e968d7197b9563f0fd8a5a3aac2e3'
          '8579d5f50ba7f0c4a5bf16b9670fea01'
@@ -43,11 +36,7 @@ md5sums=('7ab8b64edf0212a9d9a3c8129901a450'
          '1228f890f86148e4e6ae22aa73118cbb'
          '2f41fd983ba4d89419204854936025e2'
          'd074e79d380b031d2f60e4cd56538c93'
-         '9e5bcbeda4aaf02bfa095e41d30baee4'
-         '9af7db9f3052aef0b11636720b3101dd'
-         '86ab558441edfb86f853639e4290a754'
-         '97a62a011a11f03b46d72851aa298fa8'
-         'e0744594f4e5969b20df28d897781318')
+         '9af7db9f3052aef0b11636720b3101dd')
 
 build() {
   cd ${startdir}/src
@@ -56,19 +45,14 @@ build() {
       pushd "${i}"
       case "${i}" in
         xrdb*)
-	  ./configure --prefix=/usr --with-cpp=/usr/bin/mcpp\ -@old
-	;;
-	lbxproxy*)
-	  sed -e 's|$(libdir)/X11/lbxproxy|$(datadir)/X11/libxproxy|g' \
-	      -i Makefile.* || return 1
-	  ./configure --prefix=/usr
+	  ./configure --prefix=/usr --mandir=/usr/share/man --with-cpp=/usr/bin/mcpp\ -@old || return 1
 	;;
 	*)
-	  ./configure --prefix=/usr
+	  ./configure --prefix=/usr --mandir=/usr/share/man || return 1
 	;;
       esac
       make || return 1
-      make DESTDIR=${startdir}/pkg install || return 1
+      make DESTDIR="${pkgdir}" install || return 1
       popd
     fi
   done
diff --git a/abs/core-testing/xorg-server/001_fedora_extramodes.patch b/abs/core-testing/xorg-server/001_fedora_extramodes.patch
new file mode 100644
index 0000000..30743b8
--- /dev/null
+++ b/abs/core-testing/xorg-server/001_fedora_extramodes.patch
@@ -0,0 +1,85 @@
+From: Adam Jackson <ajax@redhat.com>
+Date: Sun, 28 Oct 2007 09:37:52 +0100
+Subject: [PATCH] Fedora extra modes list
+
+---
+Index: xorg-server/hw/xfree86/common/extramodes
+===================================================================
+--- xorg-server.orig/hw/xfree86/common/extramodes
++++ xorg-server/hw/xfree86/common/extramodes
+@@ -3,16 +3,75 @@
+ //
+ // $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $
+ //
++// NOTE:  Please keep all video modes sorted in order of X res, then Y res for
++//        ease of maintenance and readability.
+ 
+ # 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz
+ ModeLine "832x624" 57.284 832  864  928 1152  624  625  628  667 -Hsync -Vsync
+ 
++# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
++Modeline "1152x864"  81.62  1152 1216 1336 1520  864 865 868 895  -HSync +Vsync
++
++# 1152x864 @ 70.00 Hz (GTF) hsync: 63.00 kHz; pclk: 96.77 MHz
++Modeline "1152x864"  96.77  1152 1224 1344 1536  864 865 868 900  -HSync +Vsync
++
++# 1152x864 @ 75.00 Hz (GTF) hsync: 67.65 kHz; pclk: 104.99 MHz
++Modeline "1152x864"  104.99  1152 1224 1352 1552  864 865 868 902  -HSync +Vsync
++
++# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz
++Modeline "1152x864"  119.65  1152 1224 1352 1552  864 865 868 907  -HSync +Vsync
++
++# 1152x864 @ 85Hz (Red Hat custom modeline)
++ModeLine "1152x864"  121.5 1152 1216 1344 1568    864  865  868  911 +hsync -vsync
++
++# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
++Modeline "1152x864"  143.47  1152 1232 1360 1568  864 865 868 915  -HSync +Vsync
++
++# 1360x768 59.96 Hz (CVT) hsync: 47.37 kHz; pclk: 72.00 MHz
++Modeline "1360x768"   72.00  1360 1408 1440 1520  768 771 781 790 +hsync -vsync
++
++# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
++Modeline "1360x768"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync
++
+ # 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz
+ ModeLine "1400x1050" 122.0 1400 1488 1640 1880   1050 1052 1064 1082 +hsync +vsync
+ 
++# 1400x1050 @ 70.00 Hz (GTF) hsync: 76.51 kHz; pclk: 145.06 MHz
++Modeline "1400x1050"  145.06  1400 1496 1648 1896  1050 1051 1054 1093  -HSync +Vsync
++
+ # 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz
+ ModeLine "1400x1050" 155.8 1400 1464 1784 1912   1050 1052 1064 1090 +hsync +vsync
+ 
++# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz
++Modeline "1400x1050"  179.26  1400 1504 1656 1912  1050 1051 1054 1103  -HSync +Vsync
++
++# 1440x900 @ 60.00 Hz (CVT) field rate 59.89 Hz; hsync: 55.93 kHz; pclk: 106.50 MHz
++Modeline "1440x900"  106.50  1440 1520 1672 1904  900 903 909 934  -HSync +Vsync
++
++# 1600x1024 for SGI 1600 SW
++ModeLine "1600x1024" 103.125 1600 1600 1656 1664 1024 1024 1029 1030 +Hsync +Vsync
++
++# 1680x1050 59.88 Hz (CVT 1.76MA-R) hsync: 64.67 kHz; pclk: 119.00 MHz
++Modeline "1680x1050"  119.00  1680 1728 1760 1840  1050 1053 1059 1080 +hsync -vsync
++
++# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
++Modeline "1680x1050"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
++
++# 1680x1050 69.88 Hz (CVT) hsync: 76.58 kHz; pclk: 174.00 MHz
++Modeline "1680x1050"  174.00  1680 1800 1976 2272  1050 1053 1059 1096 -hsync +vsync
++
++# 1680x1050 74.89 Hz (CVT 1.76MA) hsync: 82.31 kHz; pclk: 187.00 MHz
++Modeline "1680x1050"  187.00  1680 1800 1976 2272  1050 1053 1059 1099 -hsync +vsync
++
++# 1680x1050 84.94 Hz (CVT 1.76MA) hsync: 93.86 kHz; pclk: 214.75 MHz
++Modeline "1680x1050"  214.75  1680 1808 1984 2288  1050 1053 1059 1105 -hsync +vsync
++
++# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
++Modeline "1920x1080"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
++
++# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz
++Modeline "1920x1200"  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync
++
+ # 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz
+ Modeline "1920x1440" 341.35  1920 2072 2288 2656  1440 1441 1444 1512 -hsync +vsync
+ 
diff --git a/abs/core-testing/xorg-server/PKGBUILD b/abs/core-testing/xorg-server/PKGBUILD
index f9a3401..2dacf0b 100644
--- a/abs/core-testing/xorg-server/PKGBUILD
+++ b/abs/core-testing/xorg-server/PKGBUILD
@@ -1,42 +1,54 @@
+# $Id: PKGBUILD 21903 2008-12-17 20:32:54Z jgc $
+# Maintainer: Alexander Baldeck <kth5@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-server
-pkgver=1.4.2
-pkgrel=2
-_mesaver=7.0.3
+pkgver=1.5.3
+pkgrel=4
 pkgdesc="X.Org X servers"
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://xorg.freedesktop.org"
-depends=('libxkbui' 'ncurses' 'libxxf86misc' 'libxfont'
-         'libxaw' 'libxxf86vm' 'xcursor-themes'
-	 'xkeyboard-config' 'xorg-server-utils' 'xorg-utils' 'libdrm>=2.3.0'
-	 'xorg-fonts-misc' 'pixman>=0.10' 'xbitmaps')
-makedepends=('pkgconfig' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto'
-             'xf86bigfontproto' 'resourceproto' 'evieext' 'damageproto>=1.1.0'
-	     'compositeproto>=0.4' 'scrnsaverproto' 'libxres' 'xorg-util-macros'
-	     'randrproto' 'glproto>=1.4.9' 'renderproto>=0.9.3' 'autoconf'
-	     'automake' 'libtool' 'bison' 'flex' 'gcc' 'libxrender'
-	     'libxfixes' 'quilt' 'mesa')
+depends=('libx11>=1.1.5' 'libxkbui>=1.0.2' 'libgl' 'libxfont>=1.3.3' 'openssl>=0.9.8h' 'libxxf86misc>=1.0.1' 'libpciaccess>=0.10.5' 'libxv>=1.0.4' 'libxaw>=1.0.4' 'pixman>=0.11.10' 'hal>=0.5.11' 'xcursor-themes' 'xkeyboard-config>=1.3' 'xorg-server-utils' 'xorg-utils' 'xorg-fonts-misc' 'xbitmaps' 'libdrm>=2.3.1' 'diffutils' 'xf86-input-evdev')
+makedepends=('glproto>=1.4.9' 'xf86driproto>=2.0.4' 'mesa>=7.2' 'randrproto>=1.2.2' 'renderproto>=0.9.3' 'scrnsaverproto>=1.1.0' 'fontsproto>=2.0.2' 'videoproto>=2.2.2' 'compositeproto>=0.4' 'trapproto>=3.4.3' 'resourceproto>=1.0.2' 'xineramaproto>=1.1.2' 'evieext>=1.0.2' 'libxkbfile>=1.0.5' 'libxmu>=1.0.4' 'libxpm>=3.5.7' 'libxxf86dga>=1.0.2' 'inputproto>=1.4.4' 'xcmiscproto>=1.1.2' 'bigreqsproto' 'libdrm=2.3.1' 'xtrans')
 options=('!libtool')
 provides=('x-server')
 groups=('xorg')
 install=xorg-server.install
 source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
-	http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
-	ftp://ftp.archlinux.org/other/xorg-server/xorg-server-patches-1.4.2-1.tar.bz2)
-md5sums=('fa2915ae377f61c340a18ebef484b64b'
-         'e6e6379d7793af40a6bc3ce1bace572e'
-         'bc907d6d69b55b445c3046a4d7ecc8ef')
+	xserver-1.5-branch-4970d.patch
+	001_fedora_extramodes.patch
+	xorg-redhat-die-ugly-pattern-die-die-die.patch
+	xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
+	xserver-1.5.3-AEI-on-by-default.patch)
+md5sums=('308971036e25250e7fe3cccfd5a120f8'
+         '61f9bb524501247dce647b218ad14347'
+         '033427f2b406cba8dd6103ff374e7156'
+         '1a336eb22e27cbf443ec5a2ecddfa93c'
+         '7b03ba9b75d795e4f7fdfaa550d97159'
+         '63d1d61d217005db7c23c4a98fc3e7eb')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
-  quilt push -a || return 1
-  libtoolize --force --copy || return 1
-  aclocal || return 1
-  autoconf || return 1
-  automake --add-missing || return 1
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  # Upstream commits from server-1.5 branch
+  patch -Np1 -i "${srcdir}/xserver-1.5-branch-4970d.patch" || return 1
+
+  # extramodes
+  patch -Np1 -i "${srcdir}/001_fedora_extramodes.patch" || return 1
+
+  # Get rid of the ugly pattern
+  patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1
+
+  # Patch from Fedora to fix FS#12248
+  patch -Np1 -i "${srcdir}/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch" || return 1
+
+  # Upstream patch to fix evdev issues with >=2.1.0
+  patch -Np1 -i "${srcdir}/xserver-1.5.3-AEI-on-by-default.patch" || return 1
+
+  # Fix dbus config path
+  sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.*  || return 1
+
   ./configure --prefix=/usr \
-              --with-mesa-source=${startdir}/src/Mesa-${_mesaver} \
               --enable-ipv6 \
               --enable-dri \
               --disable-dmx \
@@ -51,39 +63,43 @@ build() {
               --enable-glx-tls \
               --enable-xorgcfg \
 	      --enable-kdrive \
+              --enable-install-setuid \
+              --enable-config-hal \
+	      --enable-config-dbus \
 	      --disable-xfbdev \
 	      --disable-xfake \
 	      --disable-xsdl \
 	      --disable-kdrive-vesa \
-              --enable-install-setuid \
+	      --disable-dri2 \
               --disable-xprint \
+              --disable-static \
               --sysconfdir=/etc/X11 \
               --localstatedir=/var \
               --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \
-              --with-rgb-path=/usr/share/X11/rgb \
               --with-xkb-path=/usr/share/X11/xkb \
-              --with-xkb-output=/usr/share/X11/xkb/compiled \
-              --with-dri-driver-path=/usr/lib/xorg/modules/dri \
-              --disable-config-hal \
-              --disable-static  --enable-null-root-cursor
+              --with-xkb-output=/var/lib/xkb \
+              --with-dri-driver-path=/usr/lib/xorg/modules/dri || return 1
 
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
+  make DESTDIR="${pkgdir}" install || return 1
 
-  install -m755 -d ${startdir}/pkg/etc/X11 || return 1
-  install -m755 -d ${startdir}/pkg/var/lib || return 1
-  mv ${startdir}/pkg/usr/share/X11/xkb/compiled ${startdir}/pkg/var/lib/xkb
-  ln -sf /var/lib/xkb ${startdir}/pkg/usr/share/X11/xkb/compiled || return 1
+  rm -rf "${pkgdir}/var/log" || return 1
 
-  cd ${startdir}/pkg/usr/lib/xorg/modules/extensions
-  mv libGLcore.so libGLcore.xorg
-  mv libglx.so libglx.xorg
+  install -m755 -d "${pkgdir}/etc/X11" || return 1
+  install -m755 -d "${pkgdir}/var/lib/xkb" || return 1
 
   # No longer needed, but as nvidia-utils mangles these files,
   # keep them like this so they can be restored
-  mv ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so \
-     ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so.1.4 || return 1
+  mv "${pkgdir}/usr/lib/xorg/modules/libwfb.so" \
+     "${pkgdir}/usr/lib/xorg/modules/libwfb.so.1.4" || return 1
+
+  # Needed for non-mesa drivers, libgl will restore it
+  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
+     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" || return 1
+
+  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.so" \
+     "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.xorg" || return 1
 
-  install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
-  install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
new file mode 100644
index 0000000..4e782f1
--- /dev/null
+++ b/abs/core-testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
@@ -0,0 +1,16 @@
+Remove the default root window grey stipple pattern, replacing it with
+blackness.
+
+--- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die	Tue Feb 12 16:33:04 2002
++++ xc/programs/Xserver/dix/window.c	Tue Feb 12 16:45:32 2002
+@@ -119,8 +119,8 @@
+  *
+  ******/
+ 
+-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
+-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
+ 
+ int screenIsSaved = SCREEN_SAVER_OFF;
+ 
diff --git a/abs/core-testing/xorg-server/xorg-server.install b/abs/core-testing/xorg-server/xorg-server.install
index f7ff03a..c67438d 100644
--- a/abs/core-testing/xorg-server/xorg-server.install
+++ b/abs/core-testing/xorg-server/xorg-server.install
@@ -1,12 +1,33 @@
 post_install() {
-  rm -f /usr/lib/xorg/modules/libwfb.so
-  ln -sf libwfb.so.1.4 /usr/lib/xorg/modules/libwfb.so
+  rm -f usr/lib/xorg/modules/libwfb.so
+  ln -sf libwfb.so.1.4 usr/lib/xorg/modules/libwfb.so
+
+  cmp usr/lib/xorg/modules/extensions/libdri.so usr/lib/xorg/modules/extensions/libglx.xorg >/dev/null 2>&1 && rm -f usr/lib/xorg/modules/extensions/libdri.so
+
+  # If the symlink is dead or non-existent, remove it and make a new one
+  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
+    rm -f usr/lib/xorg/modules/extensions/libdri.so
+    ln -sf libdri.xorg usr/lib/xorg/modules/extensions/libdri.so
+  fi
 }
 
 post_upgrade() {
+  if [ "`vercmp $2 1.4.99.906`" -lt 0 ]; then
+    cat << _EOF
+
+  Input device handling has changed in xorg-server 1.5.
+  Please read http://wiki.archlinux.org/index.php/Xorg_input_hotplugging.
+
+_EOF
+  fi
   post_install
 }
 
 post_remove() {
   rm -f /usr/lib/xorg/modules/libwfb.so
+
+  # If the symlink is dead, remove it
+  if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
+    rm -f usr/lib/xorg/modules/extensions/libdri.so
+  fi
 }
diff --git a/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch b/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch
new file mode 100644
index 0000000..23cdab0
--- /dev/null
+++ b/abs/core-testing/xorg-server/xserver-1.5-branch-4970d.patch
@@ -0,0 +1,246 @@
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi	2008-12-16 19:19:00.000000000 +0000
+@@ -64,8 +64,8 @@
+       <merge key="input.x11_options.XkbRules" type="string">base</merge>
+ 
+       <!-- If we're using Linux, we use evdev by default (falling back to
+-           keyboard otherwise). -->
+-      <merge key="input.x11_driver" type="string">keyboard</merge>
++           kbd otherwise). -->
++      <merge key="input.x11_driver" type="string">kbd</merge>
+       <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
+       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+              string="Linux">
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c	2008-12-16 19:19:00.000000000 +0000
+@@ -398,6 +398,10 @@
+     RegionPtr srcregion = NULL, dstregion = NULL;
+     xRectangle *rects;
+ 
++    /* avoid doing copy operations if no boxes */
++    if (nbox == 0)
++	return;
++
+     pSrcPixmap = exaGetDrawablePixmap (pSrcDrawable);
+     pDstPixmap = exaGetDrawablePixmap (pDstDrawable);
+ 
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c	2008-12-16 19:19:00.000000000 +0000
+@@ -448,10 +448,6 @@
+ #define GLOBAL_DEFAULT_DEPTH 24
+ #endif
+ 
+-#ifndef GLOBAL_DEFAULT_FBBPP
+-#define GLOBAL_DEFAULT_FBBPP 32
+-#endif
+-
+ _X_EXPORT Bool
+ xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
+ 		int depth24flags)
+@@ -529,7 +525,6 @@
+ 	    if (depth > 0)
+ 		scrp->depth = depth;
+ 	} else {
+-	    scrp->bitsPerPixel = GLOBAL_DEFAULT_FBBPP;
+ 	    scrp->depth = GLOBAL_DEFAULT_DEPTH;
+ 	}
+     }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c	2008-12-16 19:19:00.000000000 +0000
+@@ -1,6 +1,6 @@
+ /*
+  * linux specific part of the int10 module
+- * Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich
++ * Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2008 Egbert Eich
+  */
+ #ifdef HAVE_XORG_CONFIG_H
+ #include <xorg-config.h>
+@@ -357,7 +357,10 @@
+ 		   "shmat(low_mem) error: %s\n",strerror(errno));
+ 	return FALSE;
+     }
+-    
++    if (mprotect((void*)0, V_RAM, PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
++        xf86DrvMsg(pInt->scrnIndex, X_ERROR,
++		   "Cannot set EXEC bit on low memory: %s\n", strerror(errno));
++
+     if (((linuxInt10Priv*)pInt->private)->highMem >= 0) {
+ 	addr = shmat(((linuxInt10Priv*)pInt->private)->highMem,
+ 		     (char*)HIGH_MEM, 0);
+@@ -368,6 +371,11 @@
+ 		       "shmget error: %s\n",strerror(errno));
+ 	    return FALSE;
+ 	}
++	if (mprotect((void*)HIGH_MEM, HIGH_MEM_SIZE,
++		     PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
++	    xf86DrvMsg(pInt->scrnIndex, X_ERROR,
++		       "Cannot set EXEC bit on high memory: %s\n",
++		       strerror(errno));
+     } else {
+ 	if ((fd = open(DEV_MEM, O_RDWR, 0)) >= 0) {
+ 	    if (mmap((void *)(V_BIOS), SYS_BIOS - V_BIOS,
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h	2008-12-16 19:19:00.000000000 +0000
+@@ -2,6 +2,10 @@
+ #ifndef _XAA_H
+ #define _XAA_H
+ 
++#define XAA_VERSION_MAJOR   1
++#define XAA_VERSION_MINOR   2
++#define XAA_VERSION_RELEASE 1
++
+ /*
+ 
+    ******** OPERATION SPECIFIC FLAGS *********
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c	2008-12-16 19:19:00.000000000 +0000
+@@ -103,7 +103,9 @@
+ 	MODINFOSTRING1,
+ 	MODINFOSTRING2,
+ 	XORG_VERSION_CURRENT,
+-	1, 2, 0,
++	XAA_VERSION_MAJOR,
++	XAA_VERSION_MINOR,
++	XAA_VERSION_RELEASE,
+ 	ABI_CLASS_VIDEODRV,		/* requires the video driver ABI */
+ 	ABI_VIDEODRV_VERSION,
+ 	MOD_CLASS_NONE,
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h	2008-12-16 19:19:00.000000000 +0000
+@@ -48,8 +48,8 @@
+     XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
+     GCFuncs *oldFuncs = pGC->funcs;\
+     pGC->funcs = pGCPriv->wrapFuncs;\
+-    pGC->ops = pGCPriv->wrapOps
+-
++    pGC->ops = pGCPriv->wrapOps; \
++    SYNC_CHECK(pGC)
+     
+ #define XAA_PIXMAP_OP_EPILOGUE(pGC)\
+     pGCPriv->wrapOps = pGC->ops;\
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c	2008-12-16 19:19:00.000000000 +0000
+@@ -661,7 +661,8 @@
+ #endif
+ 
+ #ifdef GLXEXT
+-    GlxPushProvider(&__glXDRISWRastProvider);
++    if (serverGeneration == 1)
++	GlxPushProvider(&__glXDRISWRastProvider);
+     if (!noGlxExtension) GlxExtensionInit();
+ #endif
+ }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c	2008-12-16 19:19:00.000000000 +0000
+@@ -1702,7 +1702,7 @@
+     int pid;
+ } *pidlist;
+ 
+-void (*old_alarm)(int) = NULL; /* XXX horrible awful hack */
++OsSigHandlerPtr old_alarm = NULL; /* XXX horrible awful hack */
+ 
+ pointer
+ Popen(char *command, char *type)
+@@ -1726,7 +1726,7 @@
+     }
+ 
+     /* Ignore the smart scheduler while this is going on */
+-    old_alarm = signal(SIGALRM, SIG_IGN);
++    old_alarm = OsSignal(SIGALRM, SIG_IGN);
+     if (old_alarm == SIG_ERR) {
+       perror("signal");
+       return NULL;
+@@ -1737,7 +1737,7 @@
+ 	close(pdes[0]);
+ 	close(pdes[1]);
+ 	xfree(cur);
+-	if (signal(SIGALRM, old_alarm) == SIG_ERR)
++	if (OsSignal(SIGALRM, old_alarm) == SIG_ERR)
+ 	  perror("signal");
+ 	return NULL;
+     case 0:	/* child */
+@@ -1914,7 +1914,7 @@
+     /* allow EINTR again */
+     OsReleaseSignals ();
+     
+-    if (old_alarm && signal(SIGALRM, old_alarm) == SIG_ERR) {
++    if (old_alarm && OsSignal(SIGALRM, old_alarm) == SIG_ERR) {
+       perror("signal");
+       return -1;
+     }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c	2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c	2008-12-16 19:19:00.000000000 +0000
+@@ -109,7 +109,7 @@
+ register CARD16	changed,bState;
+ 
+     interest = kbd->xkb_interest;
+-    if (!interest)
++    if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ 	return;
+     xkbi = kbd->key->xkbInfo;
+     state= &xkbi->state;
+@@ -168,6 +168,9 @@
+ unsigned	time = 0,initialized;
+ CARD16		changed;
+ 
++    if (!kbd->key || !kbd->key->xkbInfo)
++        return;
++
+     xkbi = kbd->key->xkbInfo;
+     initialized= 0;
+ 
+@@ -291,7 +294,7 @@
+ Time 		 	time = 0;
+ 
+     interest = kbd->xkb_interest;
+-    if (!interest)
++    if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ 	return;
+     xkbi = kbd->key->xkbInfo;
+  
+@@ -401,6 +404,9 @@
+ Time 		time = 0;
+ XID		winID = 0;
+ 
++    if (!kbd->key || !kbd->key->xkbInfo)
++        return;
++
+     xkbi = kbd->key->xkbInfo;
+ 
+     if ((force||(xkbi->desc->ctrls->enabled_ctrls&XkbAudibleBellMask))&&
+@@ -616,11 +622,12 @@
+ XkbInterestPtr	 interest;
+ Time 		 time = 0;
+ 
+-    xkbi = kbd->key->xkbInfo;
+     interest = kbd->xkb_interest;
+-    if (!interest)
++    if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ 	return;
+  
++    xkbi = kbd->key->xkbInfo;
++
+     initialized = 0;
+     pEv->mods= xkbi->state.mods;
+     pEv->group= xkbi->state.group;
+@@ -996,6 +1003,10 @@
+ ClientPtr	client = NULL;
+ 
+     found= False;
++
++    if (!dev->key || !dev->key->xkbInfo)
++        return found;
++
+     autoCtrls= autoValues= 0;
+     if ( dev->xkb_interest ) {
+ 	interest = dev->xkb_interest;
diff --git a/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch b/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
new file mode 100644
index 0000000..2ac6095
--- /dev/null
+++ b/abs/core-testing/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
@@ -0,0 +1,69 @@
+From 638cab7e1dc3711f7fb04155bcdabf4b8895cc5e Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 4 Aug 2008 17:08:36 +0930
+Subject: [PATCH] xfree86: force SwitchCoreKeyboard for evdev devices (updated).
+
+If an evdev keyboard device is added through the HAL mechanism, force a
+SwitchCoreKeyboard to load the evdev map into the VCK. This way, by the time a
+client starts the evdev keymap is already there, leading to less pain lateron.
+
+Works if:
+- all keyboards are hotplugged through HAL, and/or
+- the xorg.conf keyboard uses the kbd driver.
+
+Has no effect (i.e. busted keymaps) if:
+- an evdev keyboard device has been specified in the xorg.conf.
+- we don't have a device at startup and plug a device in after starting the
+  desktop environment.
+- if the device we use isn't the first one reported by HAL.
+
+If HAL isn't set up, this patch is a noop.
+---
+ hw/xfree86/common/xf86Xinput.c |   31 +++++++++++++++++++++++++++++++
+ 1 files changed, 31 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
+index 710e787..dacc3dc 100644
+--- a/hw/xfree86/common/xf86Xinput.c
++++ b/hw/xfree86/common/xf86Xinput.c
+@@ -423,6 +423,37 @@ NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev)
+         (!is_auto || xf86Info.autoEnableDevices))
+         EnableDevice(dev);
+ 
++    /* XXX: The VCK always starts with built-in defaults for keymap. These
++     * defaults are different to the evdev ones. When the first key is hit on
++     * an extension device, the keymap is copied into the VCK's and any
++     * changes made at runtime to the VCK map are lost.
++     *
++     * Assumption: if we have at least one evdev keyboard device, we can
++     * ignore kbd devices. Force a SwitchCoreKeyboard so the VCK has the same
++     * keymap as we do.
++     *
++     * Next time we hit a key, we don't change the map over anymore (see
++     * SwitchCoreKeyboard), and live happily ever after.
++     * Until we have 2 physical keyboards. Or the first real keyboard isn't
++     * actually the one we use. Oh well.
++     *
++     */
++    if (dev->key)
++    {
++        InputInfoPtr info;
++
++        /* Search if there is one other keyboard that uses evdev. */
++        for (info = xf86InputDevs; info; info = info->next)
++        {
++            if (info != pInfo && info->dev && info->dev->key &&
++                (strcmp(info->drv->driverName, "evdev") == 0))
++                break;
++        }
++
++        if (!info)
++            SwitchCoreKeyboard(dev);
++    }
++
+     *pdev = dev;
+     return Success;
+ 
+-- 
+1.5.5.1
+
diff --git a/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch b/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch
new file mode 100644
index 0000000..d6cdf83
--- /dev/null
+++ b/abs/core-testing/xorg-server/xserver-1.5.3-AEI-on-by-default.patch
@@ -0,0 +1,108 @@
+From 15bf414daa83967fd1f24bd48bd01ea941c11ce2 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@redhat.com>
+Date: Thu, 13 Nov 2008 10:17:33 +1000
+Subject: [PATCH] xfree86: AllowEmptyInput is true by default - update the xf86Info defaults.
+
+Also set AutoAddDevices and AutoEnableDevices to their defaults.
+
+And in doing so, switch the rest of the defaults over to named intializers.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+(cherry picked from commit 0b56b44addc323a00eb7cd86240cb0dd4275bcf8)
+
+Conflicts:
+
+	hw/xfree86/common/xf86Globals.c
+---
+ hw/xfree86/common/xf86Globals.c |   69 ++++++++++++++++++++------------------
+ 1 files changed, 36 insertions(+), 33 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
+index f5babbc..a5edd82 100644
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -95,45 +95,48 @@ InputInfoPtr xf86InputDevs = NULL;
+ /* Globals that video drivers may not access */
+ 
+ xf86InfoRec xf86Info = {
+-	-1,		/* consoleFd */
+-	-1,		/* vtno */
+-	FALSE,		/* vtSysreq */
+-	SKWhenNeeded,	/* ddxSpecialKeys */
+-	NULL,		/* pMouse */
++    .consoleFd                  = -1,
++    .vtno                       = -1,
++    .vtSysreq                   = FALSE,
++    .ddxSpecialKeys             = SKWhenNeeded,
++    .pMouse                     = NULL,
+ #ifdef XINPUT
+-	NULL,		/* mouseLocal */
++    .mouseLocal                 = NULL,
+ #endif
+-	-1,		/* lastEventTime */
+-	FALSE,		/* vtRequestsPending */
+-	FALSE,		/* inputPending */
+-	FALSE,		/* dontVTSwitch */
+-	FALSE,		/* dontZap */
+-	FALSE,		/* dontZoom */
+-	FALSE,		/* notrapSignals */
+-	FALSE,		/* caughtSignal */
+-	FALSE,		/* sharedMonitor */
+-	NULL,		/* currentScreen */
++    .lastEventTime              = -1,
++    .vtRequestsPending          = FALSE,
++    .inputPending               = FALSE,
++    .dontVTSwitch               = FALSE,
++    .dontZap                    = FALSE,
++    .dontZoom                   = FALSE,
++    .notrapSignals              = FALSE,
++    .caughtSignal               = FALSE,
++    .sharedMonitor              = FALSE,
++    .currentScreen              = NULL,
+ #ifdef CSRG_BASED
+-	-1,		/* screenFd */
+-	-1,		/* consType */
++    .screenFd                   = -1,
++    .consType                   = -1,
+ #endif
+-	FALSE,		/* allowMouseOpenFail */
+-	TRUE,		/* vidModeEnabled */
+-	FALSE,		/* vidModeAllowNonLocal */
+-	TRUE,		/* miscModInDevEnabled */
+-	FALSE,		/* miscModInDevAllowNonLocal */
+-	PCIOsConfig,	/* pciFlags */
+-	Pix24DontCare,	/* pixmap24 */
+-	X_DEFAULT,	/* pix24From */
++    .allowMouseOpenFail         = FALSE,
++    .vidModeEnabled             = TRUE,
++    .vidModeAllowNonLocal       = FALSE,
++    .miscModInDevEnabled        = TRUE,
++    .miscModInDevAllowNonLocal  = FALSE,
++    .pciFlags                   = PCIOsConfig,
++    .pixmap24                   = Pix24DontCare,
++    .pix24From                  = X_DEFAULT,
+ #ifdef __i386__
+-	FALSE,		/* pc98 */
++    .pc98                       = FALSE,
+ #endif
+-	TRUE,		/* pmFlag */
+-	LogNone,	/* syncLog */
+-	0,		/* estimateSizesAggressively */
+-	FALSE,		/* kbdCustomKeycodes */
+-	FALSE,		/* disableRandR */
+-	X_DEFAULT	/* randRFrom */
++    .pmFlag                     = TRUE,
++    .log                        = LogNone,
++    .estimateSizesAggressively  = 0,
++    .kbdCustomKeycodes          = FALSE,
++    .disableRandR               = FALSE,
++    .randRFrom                  = X_DEFAULT,
++    .allowEmptyInput            = TRUE,
++    .autoAddDevices             = TRUE,
++    .autoEnableDevices          = TRUE
+ };
+ const char *xf86ConfigFile = NULL;
+ const char *xf86InputDeviceList = NULL;
+-- 
+1.6.0.3
+
diff --git a/abs/core-testing/xorg-util-macros/PKGBUILD b/abs/core-testing/xorg-util-macros/PKGBUILD
index 8388da6..af3786a 100644
--- a/abs/core-testing/xorg-util-macros/PKGBUILD
+++ b/abs/core-testing/xorg-util-macros/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 3239 2008-06-21 17:46:04Z jgc $
+# $Id: PKGBUILD 21902 2008-12-17 20:27:32Z jgc $
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-util-macros
-pkgver=1.1.6
+pkgver=1.2.1
 pkgrel=1
 pkgdesc="X.Org Autotools macros"
 arch=(i686 x86_64)
 license=('custom')
 url="http://xorg.freedesktop.org/"
 source=(${url}/releases/individual/util/util-macros-${pkgver}.tar.bz2)
-md5sums=('5b82bf7c25112f2ce7e2a3638a91a83c')
+md5sums=('dc7ddaf9bea8b341510efe4dac125af4')
 
 build() {
-  cd ${startdir}/src/util-macros-${pkgver}
+  cd "${srcdir}/util-macros-${pkgver}"
   ./configure --prefix=/usr || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
-  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname} || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }
diff --git a/abs/core-testing/xorg-utils/PKGBUILD b/abs/core-testing/xorg-utils/PKGBUILD
index 6fe2d0f..61a55ce 100644
--- a/abs/core-testing/xorg-utils/PKGBUILD
+++ b/abs/core-testing/xorg-utils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 18574 2008-11-07 22:08:19Z jgc $
+# $Id: PKGBUILD 18946 2008-11-12 04:14:33Z eric $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xorg-utils
@@ -8,7 +8,7 @@ pkgdesc="Collection of client utilities used to query the X server"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
 depends=('libxxf86dga' 'libxi' 'libxxf86misc' 'libxtst' 'libxinerama' 'libxv'
-         'libdmx' 'libxft' 'libxaw')
+         'libdmx' 'libxft' 'libxaw>=1.0.5')
 makedepends=('pkgconfig' 'mesa')
 source=(${url}/releases/individual/app/xdpyinfo-1.0.3.tar.bz2
         ${url}/releases/individual/app/xdriinfo-1.0.2.tar.bz2
@@ -21,16 +21,11 @@ source=(${url}/releases/individual/app/xdpyinfo-1.0.3.tar.bz2
         ${url}/releases/individual/app/xprop-1.0.4.tar.bz2
         ${url}/releases/individual/app/xvinfo-1.0.2.tar.bz2
         ${url}/releases/individual/app/xwininfo-1.0.4.tar.bz2)
-md5sums=('b7cbab6cbcd12bf7ad65dbc12d86e104'
-         'a5ec51ed9f0a55dc3462d90d52ff899c'
-         'a9532c3d1683c99bb5df1895cb3a60b1'
-         'c72abd90f50ef459bc14b39ec9fcc7f8'
-         '288fe4cf8a990e4e602aac16dd9109fb'
-         '69adcda848479acc3b82b3928812d191'
-         '44473b880d26bfbe8b3d4d72b183cba7'
-         '28958248590ff60ecd70e8f590d977b7'
-         '48aa8fd78802f477dcbf9ef0dfd9f783'
-         'e1e318436f49e2f0f3764593dadd9ad2'
+md5sums=('b7cbab6cbcd12bf7ad65dbc12d86e104' 'a5ec51ed9f0a55dc3462d90d52ff899c'\
+         'a9532c3d1683c99bb5df1895cb3a60b1' 'c72abd90f50ef459bc14b39ec9fcc7f8'\
+         '288fe4cf8a990e4e602aac16dd9109fb' '69adcda848479acc3b82b3928812d191'\
+         '44473b880d26bfbe8b3d4d72b183cba7' '28958248590ff60ecd70e8f590d977b7'\
+         '48aa8fd78802f477dcbf9ef0dfd9f783' 'e1e318436f49e2f0f3764593dadd9ad2'\
          'e2a9bf5ab7f2a0866700a3b49dd8c6bf')
 
 build() {
@@ -38,7 +33,7 @@ build() {
   for i in *; do
     if [ -d "${i}" ]; then
       pushd "${i}"
-      ./configure --prefix=/usr || return 1
+      ./configure --prefix=/usr --mandir=/usr/share/man || return 1
       make || return 1
       make DESTDIR="${pkgdir}" install || return 1
       popd
diff --git a/abs/core-testing/xorg-xkb-utils/PKGBUILD b/abs/core-testing/xorg-xkb-utils/PKGBUILD
index 5bfac78..15ab306 100644
--- a/abs/core-testing/xorg-xkb-utils/PKGBUILD
+++ b/abs/core-testing/xorg-xkb-utils/PKGBUILD
@@ -1,33 +1,31 @@
-# $Id: PKGBUILD 4399 2008-07-06 20:26:41Z jgc $
+# $Id: PKGBUILD 18690 2008-11-08 17:01:43Z jgc $
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xorg-xkb-utils
-pkgver=7.3
+pkgver=7.4
 pkgrel=1
 pkgdesc="X.org keyboard utilities"
 arch=(i686 x86_64)
 url="http://xorg.freedesktop.org/"
-depends=('libxaw' 'libxkbfile')
+depends=('libxaw>=1.0.5' 'libxkbfile')
 makedepends=(pkgconfig)
 source=(${url}/releases/individual/app/xkbutils-1.0.1.tar.bz2
         ${url}/releases/individual/app/xkbcomp-1.0.5.tar.bz2
         ${url}/releases/individual/app/xkbevd-1.0.2.tar.bz2
-        ${url}/releases/individual/app/xkbprint-1.0.1.tar.bz2
         ${url}/releases/individual/app/setxkbmap-1.0.4.tar.bz2)
 md5sums=('84396a3dd75337caaae29d8fa5616fb1'
          '6cc96c3e4ed5d9802fe717beac008f19'
          '68f2a143716c23b566f8509d9498f516'
-         'b98ae2d8b21c545b7b322d0b302efefa'
          '6fab3bb176be9e510c5613d054ef1ca4')
 
 build() {
-  cd ${startdir}/src
+  cd "${srcdir}"
   for i in *; do
     if [ -d "${i}" ]; then
       pushd "${i}"
-      ./configure --prefix=/usr
+      ./configure --prefix=/usr || return 1
       make || return 1
-      make DESTDIR=${startdir}/pkg install || return 1
+      make DESTDIR="${pkgdir}" install || return 1
       popd
     fi
   done
diff --git a/abs/core-testing/xterm/PKGBUILD b/abs/core-testing/xterm/PKGBUILD
index ced251a..f3ac735 100644
--- a/abs/core-testing/xterm/PKGBUILD
+++ b/abs/core-testing/xterm/PKGBUILD
@@ -1,21 +1,22 @@
-# $Id: PKGBUILD 3697 2008-06-29 12:44:48Z jgc $
+# $Id: PKGBUILD 18684 2008-11-08 16:46:33Z jgc $
 #  ppc Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # i686 Maintainer: Jan de Groot <jgc@archlinux.org>
 pkgname=xterm
-pkgver=235
+pkgver=237
 pkgrel=1
 pkgdesc="X Terminal Emulator"
 arch=(i686 x86_64)
 url="http://invisible-island.net/xterm/"
-depends=('libxft' 'libxaw' 'ncurses' 'xorg-apps')
+depends=('libxft' 'libxaw>=1.0.5' 'ncurses' 'xorg-apps')
 groups=('xorg')
 source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz)
-md5sums=('5060cab9cef0ea09a24928f3c7fbde2b')
+md5sums=('6d5f9e124fd3e09487f47c66da8c7345')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}
+  cd "${srcdir}/${pkgname}-${pkgver}"
   ./configure --prefix=/usr \
               --libdir=/etc \
+              --mandir=/usr/share/man \
 	      --with-app-defaults=/usr/share/X11/app-defaults/ \
               --with-x \
 	      --disable-full-tgetent \
@@ -38,6 +39,6 @@ build() {
 	      --enable-mini-luit \
 	      --enable-narrowproto || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install || return 1
-  chmod 0755 ${startdir}/pkg/usr/bin/xterm || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  chmod 0755 "${pkgdir}/usr/bin/xterm" || return 1
 }
diff --git a/abs/extra-testing/esound/PKGBUILD b/abs/extra-testing/esound/PKGBUILD
new file mode 100644
index 0000000..b157aab
--- /dev/null
+++ b/abs/extra-testing/esound/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 19662 2008-11-28 20:35:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=esound
+pkgver=0.2.41
+pkgrel=1
+pkgdesc="Enlightened Sound Daemon"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('audiofile' 'tcp_wrappers' 'alsa-lib>=1.0.18')
+url="http://www.tux.org/~ricdude/EsounD.html"
+provides=("esd=${pkgver}")
+replaces=('esd')
+conflicts=('esd')
+backup=('etc/esd.conf')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2
+	esd-0.2.38-alsa-drain.patch
+	esd)
+md5sums=('8d9aad3d94d15e0d59ba9dc0ea990c6c'
+         '3de93efcd1bc196a3585e6aef50eac48'
+         'a4c76e7c7f75b201ea7ab6fb15b47472')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/esd-0.2.38-alsa-drain.patch" || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc \
+              --localstatedir=/var --disable-static \
+              --with-audiofile --with-libwrap \
+	      --enable-alsa --disable-artstest || return 1
+  make || return 1
+  make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/etc/rc.d"
+  install -m755 "${srcdir}/esd" "${pkgdir}/etc/rc.d/esd" || return 1
+}
diff --git a/abs/extra-testing/esound/esd b/abs/extra-testing/esound/esd
new file mode 100755
index 0000000..d90ef55
--- /dev/null
+++ b/abs/extra-testing/esound/esd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/esd`
+case "$1" in
+  start)
+    stat_busy "Starting Esound Daemon"
+    if [ -z "$PID" ]; then 
+       /usr/bin/esd -nobeeps &
+    fi
+    if [ ! -z "$PID" -o $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon esd
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping Esound Daemon"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon esd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
diff --git a/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch b/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch
new file mode 100644
index 0000000..f2fb716
--- /dev/null
+++ b/abs/extra-testing/esound/esd-0.2.38-alsa-drain.patch
@@ -0,0 +1,11 @@
+--- esound-0.2.38/audio_alsa09.c.old	2007-06-11 12:22:24.000000000 +0200
++++ esound-0.2.38/audio_alsa09.c	2007-06-11 12:22:49.000000000 +0200
+@@ -486,7 +486,7 @@ void esd_audio_flush(void)
+ 	}
+ 
+ 	if (alsa_playback_handle != NULL)
+-		snd_pcm_drain( alsa_playback_handle );
++		snd_pcm_drop( alsa_playback_handle );
+   
+ 	if (alsadbg) 
+ 		print_state();
diff --git a/abs/extra-testing/libdvdcss/PKGBUILD b/abs/extra-testing/libdvdcss/PKGBUILD
new file mode 100644
index 0000000..9b5253e
--- /dev/null
+++ b/abs/extra-testing/libdvdcss/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 14403 2008-10-06 08:19:39Z douglas $
+# Maintainer: arjan <arjan@archlinux.org>
+# Contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdcss
+pkgver=1.2.10
+pkgrel=1
+pkgdesc="libdvdcss is a cross-platform library for transparent DVD device access with on-the-fly CSS decryption."
+arch=('i686' 'x86_64')
+depends=('glibc')
+options=('!libtool')
+source=(http://download.videolan.org/pub/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+url="http://www.videolan.org/libdvdcss/"
+
+md5sums=('ebd5370b79ac5a83e5c61b24a214cf74')
+
+build() {
+  cd $startdir/src/$pkgname-$pkgver
+  ./configure --prefix=/usr
+  make || return 1
+  make DESTDIR=$startdir/pkg install
+}
diff --git a/abs/extra-testing/live-media/PKGBUILD b/abs/extra-testing/live-media/PKGBUILD
index 5e37fe1..f3f230d 100644
--- a/abs/extra-testing/live-media/PKGBUILD
+++ b/abs/extra-testing/live-media/PKGBUILD
@@ -1,16 +1,17 @@
-#$Id: PKGBUILD 13918 2008-09-29 20:59:34Z giovanni $
-#Maintainer: Aaron, phrakture, Griffin <aaron@archlinux.org>
-#Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+#$Id: PKGBUILD 21746 2008-12-15 23:00:08Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
 
 pkgname=live-media
-pkgver=2008.10.07
+pkgver=2008.12.20
 pkgrel=1
 pkgdesc="A set of C++ libraries for multimedia streaming"
 arch=('i686' 'x86_64')
 license=('LGPL')
-url="http://live555.com/liveMedia/"
+url="http://live555.com/liveMedia"
 depends=(gcc-libs)
 source=(http://live555.com/liveMedia/public/live.$pkgver.tar.gz)
+md5sums=('266d9b15f57ca952667780d9c2185e5e')
 
 build()
 {
diff --git a/abs/extra-testing/mingetty/PKGBUILD b/abs/extra-testing/mingetty/PKGBUILD
new file mode 100644
index 0000000..d24a8b5
--- /dev/null
+++ b/abs/extra-testing/mingetty/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: stonecrest <stonecrestATgmailDOTcom>
+pkgname=mingetty
+pkgver=1.08
+pkgrel=2
+pkgdesc="Designed to be a minimal getty and allows automatic logins."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/mingetty"
+license=('GPL')
+depends=('glibc')
+makedepends=('gcc' 'make')
+provides=('mingetty')
+conflicts=('mingetty')
+md5sums=('2a75ad6487ff271424ffc00a64420990'
+         'b1bcb0668c34d4981e3acddc3990dfdb')
+source=(http://downloads.sourceforge.net/sourceforge/mingetty/$pkgname-$pkgver.tar.gz
+		mingetty-utf8.patch)
+
+build() {
+	patch $startdir/src/$pkgname-$pkgver/mingetty.c mingetty-utf8.patch || return 1
+
+	mkdir -p $startdir/pkg/sbin || return 1
+	mkdir -p $startdir/pkg/usr/man/man8 || return 1
+	
+	cd $startdir/src || return 1
+	cd $startdir/src/$pkgname-$pkgver || return 1
+	
+	LDFLAGS="-s" make || return 1
+	install -m 0755 mingetty $startdir/pkg/sbin || return 1
+	install -m 0644 mingetty.8 $startdir/pkg/usr/man/man8 || return 1
+}
diff --git a/abs/extra-testing/mingetty/mingetty-utf8.patch b/abs/extra-testing/mingetty/mingetty-utf8.patch
new file mode 100644
index 0000000..c269039
--- /dev/null
+++ b/abs/extra-testing/mingetty/mingetty-utf8.patch
@@ -0,0 +1,158 @@
+diff -Nru mingetty-1.07.orig/mingetty.c mingetty-1.07/mingetty.c
+--- mingetty-1.07.orig/mingetty.c	2004-01-03 15:15:56.000000000 +0200
++++ mingetty-1.07/mingetty.c	2006-11-22 22:13:26.967910100 +0200
+@@ -16,10 +16,15 @@
+  * - autologin only at first login
+  * - /etc/mingetty.conf that can be used instead of /etc/inittab for
+  *   command line options
+- * - Can UTF-8 setup be done within mingetty?
++ * - Can UTF-8 setup be done within mingetty? Let's try now :-) (VinzC)
+  * - Also add /bin/login-type functionality in here?
+  */
+ 
++/* Additional comments: Vincent Cadet <vcadet@hotmail.com> (2006-11-21)
++ * - Attempt to make mingetty support UTF-8. Modifications were imported
++ *   from Suse migetty.c 0.9.6s.
++ */
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -39,6 +44,19 @@
+ #include <syslog.h>
+ #include <sys/utsname.h>
+ #include <time.h>
++#include <locale.h>
++#include <iconv.h>
++#include <wctype.h>
++#include <sys/kd.h>
++#include <sys/ttydefaults.h>
++
++#ifndef IUTF8
++# ifndef ASM_IUTF8
++#  error ASM_IUTF8 input flag not defined - Cannot define IUTF8
++# else
++#  define IUTF8	ASM_IUTF8
++# endif
++#endif
+ 
+ /* name of this program (argv[0]) */
+ static char *progname;
+@@ -74,6 +92,8 @@
+ static char *autologin = NULL;
+ /* try to read a char before dropping to login prompt */
+ static int loginpause = 0;
++/* terminal mode */
++static int mode = K_RAW;
+ 
+ /* error() - output error messages */
+ static void error (const char *fmt, ...)
+@@ -187,10 +207,21 @@
+ 	if (fd > 2)
+ 		close (fd);
+ 
++	/* Detect mode of current keyboard setup, e.g. for UTF-8 */
++	if (ioctl(0, KDGKBMODE, &mode) < 0)
++		mode = K_RAW;
++
+ 	/* Write a reset string to the terminal. This is very linux-specific
+ 	   and should be checked for other systems. */
+ 	if (noclear == 0)
+-		write (0, "\033c", 2);
++		/* don't write a full reset (ESC c) because this leaves the 
++		   unicode mode again if the terminal was in unicode mode
++		   and also undos the ESC sequences in CONSOLE_MAGIC which
++		   are needed for some languages/console-fonts.
++		   Just put the cursor to the home position (ESC [ H),
++		   erase everything below the cursor (ESC [ J), and set the
++		   scrolling region to the full window (ESC [ r) */
++		write (0, "\033[r\033[H\033[J", 9);
+ 
+ 	sigaction (SIGHUP, &sa_old, NULL);
+ }
+@@ -292,32 +323,75 @@
+ 
+ static char *get_logname (void)
+ {
+-	static char logname[40];
++	static char logname[4*UT_NAMESIZE];
+ 	char *bp;
+ 	unsigned char c;
++	int ascii;
++	iconv_t ic;
+ 
+ 	tcflush (0, TCIFLUSH);		/* flush pending input */
++
++	/* Check for UTF-8 mode */
++	switch(mode) {
++		case K_UNICODE:
++			ascii = 0;
++			setlocale(LC_CTYPE, "en_US.UTF-8");
++			break;
++		case K_RAW:
++		case K_MEDIUMRAW:
++		case K_XLATE:
++		default:
++			ascii = 1;
++			setlocale(LC_CTYPE, "POSIX");
++			break;
++	}
++
+ 	for (*logname = 0; *logname == 0;) {
+ 		do_prompt (1);
+ 		for (bp = logname;;) {
+ 			if (read (0, &c, 1) < 1) {
+-				if (errno == EINTR || errno == EIO
+-					|| errno == ENOENT)
++				if (errno == EINTR || errno == EAGAIN) {
++					usleep(1000);
++					continue;
++				}
++				if (errno == EIO || errno == ENOENT)
+ 					exit (EXIT_SUCCESS);
+ 				error ("%s: read: %s", tty, strerror (errno));
+ 			}
+ 			if (c == '\n' || c == '\r') {
+ 				*bp = 0;
+ 				break;
+-			} else if (!isprint (c))
+-				error ("%s: invalid character 0x%x in login"
+-					" name", tty, c);
++			}
++
++			if (ascii && !isprint (c))
++				error ("%s: invalid character 0x%x in login name", tty, c);
+ 			else if ((size_t)(bp - logname) >= sizeof (logname) - 1)
+ 				error ("%s: too long login name", tty);
+-			else
+-				*bp++ = c;
++
++			*bp++ = c;
+ 		}
+ 	}
++
++	if (!ascii && (ic = iconv_open("WCHAR_T", "UTF-8"))) {
++		char tmpbuf[4*sizeof(logname)], *op, *lp;
++		size_t len = bp - logname;
++		size_t out = sizeof(tmpbuf) - 1;
++		size_t wcl;
++		wint_t *wcp;
++
++		op = tmpbuf;
++		lp = logname;
++		if ((wcl = iconv(ic , &lp, &len, &op, &out)) == (size_t)-1)
++			error ("%s: invalid character conversion for login name", tty);
++		iconv_close(ic);
++
++		wcp = (wint_t*)tmpbuf;
++		wcp[wcl] = (wint_t)0;
++		while (*wcp) {
++			if (!iswprint(*wcp++))
++				error ("%s: invalid character for login name found", tty);
++ 		}
++ 	}
+ 	return logname;
+ }
+ 
+
+
diff --git a/abs/extra-testing/mjpegtools/PKGBUILD b/abs/extra-testing/mjpegtools/PKGBUILD
index 340b25b..161e7fc 100644
--- a/abs/extra-testing/mjpegtools/PKGBUILD
+++ b/abs/extra-testing/mjpegtools/PKGBUILD
@@ -1,23 +1,25 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Mantainer: Roberto Carvajal <roberto@archlinux.org>
+
 pkgname=mjpegtools
-pkgver=1.9.0
-pkgrel=1
+pkgver=1.8.0
+pkgrel=3
 pkgdesc="The mjpeg programs are a set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video under Linux. "
 arch=(i686 x86_64)
 license=('GPL')
 url="http://mjpeg.sourceforge.net/"
-#depends=('libjpeg' 'libpng' 'sdl' 'gcc' 'libdv')
-depends=('libjpeg' 'libpng'  'gcc-libs' 'libdv')
+depends=('libjpeg' 'libpng' 'sdl' 'gcc' 'libdv')
 makedepends=('gtk2')
 options=('!makeflags' '!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}rc3.tar.gz
-	mjpegtools-1.8.0-gcc41.patch  mjpegtools-1.8.0-libc.patch 1.9.patch)
-#md5sums=('6fd98362310480bdaf7171e9659f165f' '803eccd889c60a442ee23ba65951fadc')
+source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz
+	mjpegtools-1.8.0-gcc41.patch mjpegtools-1.8.0-libc.patch)
+md5sums=('6fd98362310480bdaf7171e9659f165f' '803eccd889c60a442ee23ba65951fadc' '23b09a1ccae1b08a15076e696ccfd050')
 
 build() {
-  cd ${startdir}/src/${pkgname}-${pkgver}rc3
-#  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-gcc41.patch || return 1
-#  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-libc.patch || return 1
-  patch -Np1 -i ${startdir}/src/1.9.patch || return 1
+  cd ${startdir}/src/${pkgname}-${pkgver}
+  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-gcc41.patch || return 1
+  patch -Np1 -i ${startdir}/src/mjpegtools-1.8.0-libc.patch || return 1
   ./configure --prefix=/usr
   find -name Makefile -exec sed -i -e 's:-march=k8 -mtune=k8::' -e 's:-march=pentium3 -mtune=pentium3::' {} \;
 
diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch
index e04db90..77d556f 100644
--- a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch
+++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-gcc41.patch
@@ -10,123 +10,3 @@ diff -ur mjpegtools-1.8.0-orig/y4mdenoise/Region2D.hh mjpegtools-1.8.0/y4mdenois
  
  
  // The 2-dimensional region class.  Parameterized by the numeric type
-
-
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h
---- mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-10-28 13:34:41.000000000 -0500
-@@ -23,7 +23,9 @@
-  * 02111-1307, USA.
-  *
-  */
--
-+
-+#include <cstdlib>
-+
- #include "config.h"
-
-
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc
---- mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-10-28 13:32:54.000000000 -0500
-@@ -19,6 +19,9 @@
-  *
-  */
- 
-+
-+#include <limits>
-+
- #include <stdio.h>
- 
- #include "macroblock.hh"
-@@ -49,7 +52,7 @@
- {
-     vector<MotionEst>::iterator i;
-     vector<MotionEst>::iterator min_me;
--    int best_score = INT_MAX;
-+    int best_score = std::numeric_limits<int>::max();
-     int cur_score;
- 
-     //
-
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc
---- mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-10-28 13:36:50.000000000 -0500
-@@ -20,6 +20,8 @@
-  */
- 
- 
-+#include <limits>
-+
- #include "picturereader.hh"
- #include <stdio.h>
- #include <stdlib.h>
-@@ -37,7 +39,7 @@
- 	frames_read = 0;
- 	last_frame = -1;
-     lum_mean = 0;
--    istrm_nframes = INT_MAX;
-+    istrm_nframes = std::numeric_limits<int>::max();
- }
- 
-
-
-diff -ur mjpegtools-1.8.0.old/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp
---- mjpegtools-1.8.0.old/mplex/inputstrm.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-10-28 13:56:15.000000000 -0500
-@@ -21,6 +21,8 @@
-  */
- 
- 
-+#include <limits>
-+
- #include <config.h>
- #include <assert.h>
- 
-@@ -72,7 +74,7 @@
-     au(0),
- 	muxinto( into ),
- 	kind(_kind),
--    buffer_min(INT_MAX),
-+    buffer_min(std::numeric_limits<int>::max()),
-     buffer_max(1)
- {
- }
-
-diff -ur mjpegtools-1.8.0.old/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp
---- mjpegtools-1.8.0.old/mplex/multiplexor.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-10-28 13:59:51.000000000 -0500
-@@ -19,6 +19,7 @@
-  */
- 
- #define STREAM_LOGGING
-+#include <cstring>
- #include <config.h>
- #include <math.h>
- #include <stdlib.h>
-
-diff -ur mjpegtools-1.8.0.old/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp
---- mjpegtools-1.8.0.old/mplex/padstrm.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-10-28 14:03:24.000000000 -0500
-@@ -20,6 +20,8 @@
-  */
- 
- 
-+#include <cstring>
-+
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #endif
-
-
-diff -ur mjpegtools-1.8.0.old/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp
---- mjpegtools-1.8.0.old/mplex/main.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/main.cpp	2008-10-28 14:06:49.000000000 -0500
-@@ -26,6 +26,7 @@
- *************************************************************************/
- 
- #include <config.h>
-+#include <cstring>
- #include <stdio.h>
- #ifdef HAVE_GETOPT_H
- #include <getopt.h>
diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch
index 6ea14e0..7cffada 100644
--- a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch
+++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-libc.patch
@@ -1,142 +1,154 @@
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h
---- mjpegtools-1.8.0.old/mpeg2enc/encodertypes.h	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-10-28 13:34:41.000000000 -0500
-@@ -23,7 +23,9 @@
-  * 02111-1307, USA.
-  *
-  */
--
-+
-+#include <cstdlib>
-+
+diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/encodertypes.h mjpegtools-1.8.0/mpeg2enc/encodertypes.h
+--- mjpegtools-1.8.0.orig/mpeg2enc/encodertypes.h	2008-12-10 10:57:56.000000000 -0600
++++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h	2008-12-10 11:02:08.000000000 -0600
+@@ -26,7 +26,7 @@
+ 
  #include "config.h"
  
+-
++#include <stdlib.h>
  
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc
---- mjpegtools-1.8.0.old/mpeg2enc/macroblock.cc	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-10-28 13:32:54.000000000 -0500
-@@ -19,6 +19,9 @@
-  *
-  */
- 
-+
-+#include <limits>
-+
- #include <stdio.h>
- 
- #include "macroblock.hh"
-@@ -49,7 +52,7 @@
+ class Parity
  {
-     vector<MotionEst>::iterator i;
-     vector<MotionEst>::iterator min_me;
--    int best_score = INT_MAX;
-+    int best_score = std::numeric_limits<int>::max();
-     int cur_score;
- 
-     //
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/motionest.cc mjpegtools-1.8.0/mpeg2enc/motionest.cc
---- mjpegtools-1.8.0.old/mpeg2enc/motionest.cc	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/motionest.cc	2008-10-28 13:38:03.000000000 -0500
-@@ -45,6 +45,8 @@
-  *
+diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc mjpegtools-1.8.0/mpeg2enc/macroblock.cc
+--- mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2008-12-10 10:57:56.000000000 -0600
++++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc	2008-12-10 11:02:41.000000000 -0600
+@@ -20,6 +20,7 @@
   */
  
-+#include <limits>
-+
- #include <config.h>
  #include <stdio.h>
- #include <stdlib.h>
-@@ -1643,7 +1645,7 @@
- 		 a basis for setting thresholds for rejecting really dud 4*4
- 		 and 2*2 sub-sampled matches.
- 	*/
--	best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,INT_MAX);
-+	best.weight = psad_00(reffld+i0+j0*lx,ssblk->mb,lx,h,std::numeric_limits<int>::max());
- 	best.x = 0;
- 	best.y = 0;
- 
-@@ -1714,7 +1716,7 @@
- 	/* Final polish: half-pel search of best 1*1 against
- 	   reconstructed image. 
- 	*/
--	res->sad = INT_MAX;
-+	res->sad = std::numeric_limits<int>::max();
- 	x = (i0+best.x)<<1;
- 	y = (j0+best.y)<<1;
- 
-diff -ur mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc
---- mjpegtools-1.8.0.old/mpeg2enc/picturereader.cc	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-10-28 13:36:50.000000000 -0500
-@@ -20,6 +20,8 @@
-  */
- 
++#include <limits.h>
  
-+#include <limits>
-+
- #include "picturereader.hh"
- #include <stdio.h>
+ #include "macroblock.hh"
+ #include "mpeg2syntaxcodes.h"
+diff -Naur mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc mjpegtools-1.8.0/mpeg2enc/picturereader.cc
+--- mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2008-12-10 10:57:56.000000000 -0600
++++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc	2008-12-10 11:03:04.000000000 -0600
+@@ -25,6 +25,7 @@
  #include <stdlib.h>
-@@ -37,7 +39,7 @@
- 	frames_read = 0;
- 	last_frame = -1;
-     lum_mean = 0;
--    istrm_nframes = INT_MAX;
-+    istrm_nframes = std::numeric_limits<int>::max();
- }
- 
- 
-diff -ur mjpegtools-1.8.0.old/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp
---- mjpegtools-1.8.0.old/mplex/inputstrm.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-10-28 13:56:15.000000000 -0500
-@@ -21,6 +21,8 @@
-  */
- 
+ #include <unistd.h>
+ #include <string.h>
++#include <limits.h>
+ #include <errno.h>
+ #include "simd.h"
+ #include "mpeg2encoder.hh"
+diff -Naur mjpegtools-1.8.0.orig/mplex/inputstrm.cpp mjpegtools-1.8.0/mplex/inputstrm.cpp
+--- mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2008-12-10 10:58:55.000000000 -0600
++++ mjpegtools-1.8.0/mplex/inputstrm.cpp	2008-12-10 11:03:36.000000000 -0600
+@@ -23,6 +23,7 @@
  
-+#include <limits>
-+
  #include <config.h>
  #include <assert.h>
++#include <limits.h>
  
-@@ -72,7 +74,7 @@
-     au(0),
- 	muxinto( into ),
- 	kind(_kind),
--    buffer_min(INT_MAX),
-+    buffer_min(std::numeric_limits<int>::max()),
-     buffer_max(1)
- {
- }
-diff -ur mjpegtools-1.8.0.old/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp
---- mjpegtools-1.8.0.old/mplex/main.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/main.cpp	2008-10-28 14:06:49.000000000 -0500
-@@ -26,6 +26,7 @@
- *************************************************************************/
+ #include "mjpeg_types.h"
+ #include "inputstrm.hpp"
+diff -Naur mjpegtools-1.8.0.orig/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp
+--- mjpegtools-1.8.0.orig/mplex/padstrm.cpp	2008-12-10 10:58:55.000000000 -0600
++++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-12-10 11:04:06.000000000 -0600
+@@ -24,6 +24,7 @@
+ #include "config.h"
+ #endif
  
- #include <config.h>
-+#include <cstring>
- #include <stdio.h>
- #ifdef HAVE_GETOPT_H
- #include <getopt.h>
-diff -ur mjpegtools-1.8.0.old/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp
---- mjpegtools-1.8.0.old/mplex/multiplexor.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-10-28 13:59:51.000000000 -0500
-@@ -19,6 +19,7 @@
-  */
- 
- #define STREAM_LOGGING
-+#include <cstring>
++#include <string.h>
+ #include "padstrm.hpp"
+ 
+ 
+diff -Naur mjpegtools-1.8.0.orig/mplex/multiplexor.cpp mjpegtools-1.8.0/mplex/multiplexor.cpp
+--- mjpegtools-1.8.0.orig/mplex/multiplexor.cpp	2008-12-10 10:58:55.000000000 -0600
++++ mjpegtools-1.8.0/mplex/multiplexor.cpp	2008-12-10 11:04:53.000000000 -0600
+@@ -22,6 +22,7 @@
  #include <config.h>
  #include <math.h>
  #include <stdlib.h>
-diff -ur mjpegtools-1.8.0.old/mplex/padstrm.cpp mjpegtools-1.8.0/mplex/padstrm.cpp
---- mjpegtools-1.8.0.old/mplex/padstrm.cpp	2008-10-28 13:17:34.000000000 -0500
-+++ mjpegtools-1.8.0/mplex/padstrm.cpp	2008-10-28 14:03:24.000000000 -0500
-@@ -20,6 +20,8 @@
-  */
- 
++#include <string.h>
  
-+#include <cstring>
-+
- #ifdef HAVE_CONFIG_H
- #include "config.h"
+ #include <mjpeg_types.h>
+ #include <mjpeg_logging.h>
+diff -Naur mjpegtools-1.8.0.orig/mplex/main.cpp mjpegtools-1.8.0/mplex/main.cpp
+--- mjpegtools-1.8.0.orig/mplex/main.cpp	2008-12-10 10:58:55.000000000 -0600
++++ mjpegtools-1.8.0/mplex/main.cpp	2008-12-10 11:05:20.000000000 -0600
+@@ -31,6 +31,7 @@
+ #include <getopt.h>
  #endif
+ #include <string>
++#include <string.h>
+ #include <memory>
+ #include <sys/stat.h>
+ #ifndef _WIN32
+diff -Naur mjpegtools-1.8.0.orig/y4mdenoise/Set.hh mjpegtools-1.8.0/y4mdenoise/Set.hh
+--- mjpegtools-1.8.0.orig/y4mdenoise/Set.hh	2008-12-10 11:00:49.000000000 -0600
++++ mjpegtools-1.8.0/y4mdenoise/Set.hh	2008-12-10 11:06:30.000000000 -0600
+@@ -23,7 +23,7 @@
+ 		// How we implement ourselves.
+ 	
+ public:
+-	typedef typename Imp::Allocator Allocator;
++	typedef typename Imp::Allocator_t Allocator;
+ 		// The type of allocator to use to allocate items in the set.
+ 
+ 	Set (const PRED &a_rPred = PRED(),
+diff -Naur mjpegtools-1.8.0.orig/y4mdenoise/SkipList.hh mjpegtools-1.8.0/y4mdenoise/SkipList.hh
+--- mjpegtools-1.8.0.orig/y4mdenoise/SkipList.hh	2008-12-10 11:00:49.000000000 -0600
++++ mjpegtools-1.8.0/y4mdenoise/SkipList.hh	2008-12-10 11:09:34.000000000 -0600
+@@ -57,19 +57,19 @@
+ 		// Will give good sorting for up to e^10 items.
+ 	
+ public:
+-	typedef Allocator<Node,HEADERCHUNK> Allocator;
++	typedef Allocator<Node,HEADERCHUNK> Allocator_t;
+ 		// The type of node allocator to use.
+ 
+-	static Allocator sm_oNodeAllocator;
++	static Allocator_t sm_oNodeAllocator;
+ 		// The default node allocator.
+ 
+ 	SkipList (const PRED &a_rPred = PRED(),
+-			Allocator &a_rAlloc = sm_oNodeAllocator);
++			Allocator_t &a_rAlloc = sm_oNodeAllocator);
+ 		// Default constructor.  Must be followed by Init().
+ 
+ 	SkipList (Status_t &a_reStatus, bool a_bAllowDuplicates,
+ 			uint32_t a_nRandSeed, const PRED &a_rPred = PRED(),
+-			Allocator &a_rAlloc = sm_oNodeAllocator);
++			Allocator_t &a_rAlloc = sm_oNodeAllocator);
+ 		// Constructor.  Specify whether or not duplicates are allowed,
+ 		// and provide a random number seed.
+ 
+@@ -255,7 +255,7 @@
+ 
+ private:
+ 	
+-	Allocator &m_rNodeAllocator;
++	Allocator_t &m_rNodeAllocator;
+ 		// Where we get memory to allocate nodes.
+ 
+ 	bool m_bAllowDuplicates;
+@@ -337,7 +337,7 @@
+ 
+ // The default node allocator.  Allocates 64K at a time.
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+-typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator
++typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator_t
+ 	SkipList<KEY,VALUE,KEYFN,PRED>::sm_oNodeAllocator (65536);
+ 
+ 
+@@ -345,7 +345,7 @@
+ // Default constructor.  Must be followed by Init().
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+ SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (const PRED &a_rPred,
+-		Allocator &a_rAlloc)
++		Allocator_t &a_rAlloc)
+ 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
+ {
+ 	// Set up some defaults.
+@@ -371,7 +371,7 @@
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+ SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (Status_t &a_reStatus,
+ 		bool a_bAllowDuplicates, uint32_t a_nRandSeed,
+-		const PRED &a_rPred, Allocator &a_rAlloc)
++		const PRED &a_rPred, Allocator_t &a_rAlloc)
+ 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
+ {
+ 	// Make sure they didn't start us off with an error.
+
diff --git a/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch
new file mode 100644
index 0000000..41a59ca
--- /dev/null
+++ b/abs/extra-testing/mjpegtools/mjpegtools-1.8.0-limits.h.patch
@@ -0,0 +1,30 @@
+--- mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2007-11-29 19:45:06 +0000
++++ mjpegtools-1.8.0.orig/mpeg2enc/macroblock.cc	2007-11-29 19:45:33 +0000
+@@ -20,6 +20,7 @@ 
+  */
+ 
+ #include <stdio.h>
++#include <limits.h>
+ 
+ #include "macroblock.hh"
+ #include "mpeg2syntaxcodes.h"
+--- mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2007-11-29 19:45:06 +0000
++++ mjpegtools-1.8.0.orig/mpeg2enc/picturereader.cc	2007-11-29 19:45:52 +0000
+@@ -26,6 +26,7 @@ 
+ #include <unistd.h>
+ #include <string.h>
+ #include <errno.h>
++#include <limits.h>
+ #include "simd.h"
+ #include "mpeg2encoder.hh"
+ 
+--- mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2007-11-29 19:45:06 +0000
++++ mjpegtools-1.8.0.orig/mplex/inputstrm.cpp	2007-11-29 19:46:15 +0000
+@@ -23,6 +23,7 @@ 
+ 
+ #include <config.h>
+ #include <assert.h>
++#include <limits.h>
+ 
+ #include "mjpeg_types.h"
+ #include "inputstrm.hpp"
diff --git a/abs/extra-testing/mplayer/PKGBUILD b/abs/extra-testing/mplayer/PKGBUILD
index 43dad94..c1fdb7c 100644
--- a/abs/extra-testing/mplayer/PKGBUILD
+++ b/abs/extra-testing/mplayer/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 3632 2008-06-26 11:48:49Z paul $
+# $Id: PKGBUILD 20619 2008-12-06 02:41:24Z allan $
 # Maintainer: Thomas Bächler <thomas@archlinux.org>
 pkgname=mplayer
 pkgver=1.0rc2
-pkgrel=6
+pkgrel=9
 pkgdesc="A movie player for linux"
 arch=(i686 x86_64)
 depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia' 'gtk2'
-         'sdl' 'lame' 'libtheora' 'xvidcore'
+         'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib'
          'libgl' 'smbclient' 'aalib' 'jack-audio-connection-kit'
-         'x264>=20080625' 'faac' 'lirc-utils' 'ttf-dejavu')
+         'x264>=20080625' 'faac' 'lirc-utils' 'ttf-dejavu' 'fribidi')
 license=('GPL')
 url="http://www.mplayerhq.hu/"
 makedepends=('libcaca' 'unzip' 'live-media' 'libdca' 'mesa')
@@ -19,17 +19,14 @@ source=(http://www.mplayerhq.hu/MPlayer/releases/MPlayer-${pkgver}.tar.bz2
         http://www.mplayerhq.hu/MPlayer/patches/demux_mov_fix_20080129.diff
         http://www.mplayerhq.hu/MPlayer/patches/url_fix_20080120.diff
         http://www.mplayerhq.hu/MPlayer/patches/stream_cddb_fix_20080120.diff
-	ivtv_2.6.24.patch)
-md5sums=('7e27e535c2d267637df34898f1b91707'
-         'e4e2020d11b681aac898103b3ba723c4'
-         '320af7daa1b248ee8e8c15d34d7923e3'
-         'ce999929155f509a3e6bee41d9d613ed'
-         '6a2c124586e1e6c44ae4ca1b4be9b6e4'
-         'c7d1bcdd61fcceb7598d61fe2213c587'
-	 '1ef35068587f6b6dbc99342567895236')
+	ivtv_2.6.24.patch mplayer_desktop.patch)
+md5sums=('7e27e535c2d267637df34898f1b91707' 'e4e2020d11b681aac898103b3ba723c4'\
+         '320af7daa1b248ee8e8c15d34d7923e3' 'ce999929155f509a3e6bee41d9d613ed'\
+         '6a2c124586e1e6c44ae4ca1b4be9b6e4' 'c7d1bcdd61fcceb7598d61fe2213c587'\
+         '1ef35068587f6b6dbc99342567895236' '4c49195a4a1702f0cb321abdc3c07741')
 
 build() {
-  cd $startdir/src/MPlayer-${pkgver}
+  cd ${srcdir}/MPlayer-${pkgver}
 
   # Custom CFLAGS break the mplayer build
   unset CFLAGS
@@ -39,19 +36,22 @@ build() {
 
   # Workaround for changed ivtv interface since it went mainline in 2.6.24
   patch -p1 -i ../ivtv_2.6.24.patch || return 1
-  
+
+  # mplayer.desktop fix
+  patch -p1 -i ../mplayer_desktop.patch || return 1
+
   # Fix security issues
   for p in demux_audio_fix_20080129.diff demux_mov_fix_20080129.diff url_fix_20080120.diff stream_cddb_fix_20080120.diff; do
     patch -p0 -i ../${p}
   done
   
-  cd $startdir/src/MPlayer-${pkgver}
+  cd ${srcdir}/MPlayer-${pkgver}
 
   ./configure --prefix=/usr --enable-gui --disable-arts --enable-x11 \
       --enable-runtime-cpudetection --confdir=/etc/mplayer --disable-nas \
       --enable-gl --enable-tv-v4l1 --enable-tv-v4l2 --enable-largefiles \
       --disable-liblzo --disable-speex --disable-openal \
-      --disable-fribidi --disable-libdv --disable-musepack \
+      --enable-fribidi --disable-libdv --disable-musepack \
       --language=all --disable-dvdnav --disable-esd --disable-mga \
       --disable-libamr_nb \
       --with-extraincdir=/usr/lib/live-media
@@ -59,9 +59,9 @@ build() {
   [ "$CARCH" = "i686" ] &&  sed 's|-march=i486|-march=i686|g' -i config.mak
 
   make || return 1
-  make -j1 DESTDIR=${startdir}/pkg install
-  cp etc/{codecs.conf,input.conf,example.conf} ${startdir}/pkg/etc/mplayer/
-  ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${startdir}/pkg/usr/share/mplayer/subfont.ttf
-  rm -rf ${startdir}/pkg/usr/share/mplayer/font
-  mv ${startdir}/src/Blue ${startdir}/pkg/usr/share/mplayer/skins/default
+  make -j1 DESTDIR=${pkgdir} install
+  cp etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/
+  ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf
+  rm -rf ${pkgdir}/usr/share/mplayer/font
+  mv ${srcdir}/Blue ${pkgdir}/usr/share/mplayer/skins/default
 }
diff --git a/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff b/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff
deleted file mode 100644
index 1b18b6e..0000000
--- a/abs/extra-testing/mplayer/demux_audio_fix_20080129.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- libmpdemux/demux_audio.c	(revision 24724)
-+++ libmpdemux/demux_audio.c	(working copy)
-@@ -229,6 +229,8 @@
-           ptr += 4;
- 
-           comment = ptr;
-+          if (&comment[length] < comments || &comment[length] >= &comments[blk_len])
-+            return;
-           c = comment[length];
-           comment[length] = 0;
- 
diff --git a/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff b/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff
deleted file mode 100644
index d83477b..0000000
--- a/abs/extra-testing/mplayer/demux_mov_fix_20080129.diff
+++ /dev/null
@@ -1,45 +0,0 @@
---- libmpdemux/demux_mov.c	(revision 24724)
-+++ libmpdemux/demux_mov.c	(working copy)
-@@ -173,11 +173,12 @@
-     i=trak->chunkmap_size;
-     while(i>0){
- 	--i;
--	for(j=trak->chunkmap[i].first;j<last;j++){
-+	j=FFMAX(trak->chunkmap[i].first, 0);
-+	for(;j<last;j++){
- 	    trak->chunks[j].desc=trak->chunkmap[i].sdid;
- 	    trak->chunks[j].size=trak->chunkmap[i].spc;
- 	}
--	last=trak->chunkmap[i].first;
-+	last=FFMIN(trak->chunkmap[i].first, trak->chunks_size);
-     }
- 
- #if 0
-@@ -235,6 +236,8 @@
-     s=0;
-     for(j=0;j<trak->durmap_size;j++){
- 	for(i=0;i<trak->durmap[j].num;i++){
-+	    if (s >= trak->samples_size)
-+		break;
- 	    trak->samples[s].pts=pts;
- 	    ++s;
- 	    pts+=trak->durmap[j].dur;
-@@ -246,6 +249,8 @@
-     for(j=0;j<trak->chunks_size;j++){
- 	off_t pos=trak->chunks[j].pos;
- 	for(i=0;i<trak->chunks[j].size;i++){
-+	    if (s >= trak->samples_size)
-+		break;
- 	    trak->samples[s].pos=pos;
- 	    mp_msg(MSGT_DEMUX, MSGL_DBG3, "Sample %5d: pts=%8d  off=0x%08X  size=%d\n",s,
- 		trak->samples[s].pts,
-@@ -1568,8 +1573,7 @@
- 			if( udta_len>udta_size)
- 				udta_len=udta_size;
- 			{
--			char dump[udta_len-4];
--			stream_read(demuxer->stream, (char *)&dump, udta_len-4-4);
-+			stream_skip(demuxer->stream, udta_len-4-4);
- 			udta_size -= udta_len;
- 			}
- 		    }
diff --git a/abs/extra-testing/mplayer/mplayer_desktop.patch b/abs/extra-testing/mplayer/mplayer_desktop.patch
new file mode 100644
index 0000000..7fb2bba
--- /dev/null
+++ b/abs/extra-testing/mplayer/mplayer_desktop.patch
@@ -0,0 +1,11 @@
+--- MPlayer-1.0rc2.orig/etc/mplayer.desktop	2008-11-17 02:09:22.000000000 +0200
++++ MPlayer-1.0rc2/etc/mplayer.desktop	2008-11-17 02:09:33.000000000 +0200
+@@ -10,7 +10,7 @@
+ Comment[it]=Lettore multimediale
+ Icon=mplayer.xpm
+ TryExec=gmplayer
+-Exec=gmplayer %U
++Exec=gmplayer %F
+ Terminal=false
+ Categories=GTK;AudioVideo;Audio;Video;Player;TV;
+ MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-theora;video/x-matroska;
diff --git a/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff b/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff
deleted file mode 100644
index 45f7226..0000000
--- a/abs/extra-testing/mplayer/stream_cddb_fix_20080120.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- stream/stream_cddb.c	(revision 24724)
-+++ stream/stream_cddb.c	(working copy)
-@@ -53,6 +53,7 @@
- #include "version.h"
- #include "stream.h"
- #include "network.h"
-+#include "libavutil/intreadwrite.h"
- 
- #define DEFAULT_FREEDB_SERVER	"freedb.freedb.org"
- #define DEFAULT_CACHE_DIR	"/.cddb/"
-@@ -453,8 +454,9 @@
- 		} else {
- 			len = ptr2-ptr+1;
- 		}
-+		len = FFMIN(sizeof(album_title) - 1, len);
- 		strncpy(album_title, ptr, len);
--		album_title[len-2]='\0';
-+		album_title[len]='\0';
- 	}
- 	mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title);
- 	return 0;
-@@ -490,8 +492,9 @@
- 				} else {
- 					len = ptr2-ptr+1;
- 				}
-+				len = FFMIN(sizeof(album_title) - 1, len);
- 				strncpy(album_title, ptr, len);
--				album_title[len-2]='\0';
-+				album_title[len]='\0';
- 			}
- 			mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title);
- 			return cddb_request_titles(cddb_data);
diff --git a/abs/extra-testing/mplayer/url_fix_20080120.diff b/abs/extra-testing/mplayer/url_fix_20080120.diff
deleted file mode 100644
index a073589..0000000
--- a/abs/extra-testing/mplayer/url_fix_20080120.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- stream/url.c	(revision 24724)
-+++ stream/url.c	(working copy)
-@@ -328,6 +328,7 @@
- 		}
- 	}
- 	
-+	tmp = NULL;
- 	while(i < len) {
- 		// look for the next char that must be kept
- 		for  (j=i;j<len;j++) {
diff --git a/abs/extra-testing/rsync/ChangeLog b/abs/extra-testing/rsync/ChangeLog
new file mode 100644
index 0000000..c6ae50d
--- /dev/null
+++ b/abs/extra-testing/rsync/ChangeLog
@@ -0,0 +1,25 @@
+2008-12-29  Eric Belanger  <eric@archlinux.org>
+
+	* rsync 3.0.5-1
+	* Upstream update
+
+2008-09-06  Eric Belanger  <eric@archlinux.org>
+
+	* rsync 3.0.4-1
+	* Upstream update
+
+2008-07-05  Eric Belanger  <eric@archlinux.org>
+
+	* rsync 3.0.3-1
+	* Upstream update
+
+2008-04-13  Eric Belanger  <eric@archlinux.org>
+
+	* rsync 3.0.2-1
+	* Upstream update
+	
+2008-03-01  Eric Belanger  <eric@archlinux.org>
+
+	* rsync 3.0.0-1
+	* Upstream update
+	* Updated license
diff --git a/abs/extra-testing/rsync/PKGBUILD b/abs/extra-testing/rsync/PKGBUILD
new file mode 100644
index 0000000..c2c5e2c
--- /dev/null
+++ b/abs/extra-testing/rsync/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 22959 2008-12-30 04:53:36Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=rsync
+pkgver=3.0.5
+pkgrel=1
+pkgdesc="A file transfer program to keep remote files in sync"
+arch=('i686' 'x86_64')
+url="http://samba.anu.edu.au/rsync/"
+license=('GPL3')
+depends=('acl')
+backup=('etc/rsyncd.conf' 'etc/xinetd.d/rsync')
+source=(http://rsync.samba.org/ftp/rsync/${pkgname}-${pkgver}.tar.gz \
+        rsyncd.conf rsyncd rsync.xinetd)
+md5sums=('a130e736c011572cb423b6245e97fc4b' '4395c0591638349b1a7aeaaa4da1f03a'\
+         '9de4d03d49f4b5c73ffd67d452716a49' 'ea3e9277dc908bc51f9eddc0f6b935c1')
+sha1sums=('d95e75af9456b0edca68bde17260c98261b4b8c5'
+          '48be09294134dfed888818872fe552a59c29147a'
+          'ebec275bbd0c11692c91dc59368349601bd9eaf4'
+          'fdb99785bc87ee13d77aa90dc1804f3f75dd7fc1')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  ./prepare-source || return 1
+  ./configure --prefix=/usr --with-included-popt \
+              --enable-acl-support --enable-xattr-support || return 1
+  make || return 1
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m 755 ../rsyncd ${pkgdir}/etc/rc.d/rsyncd || return 1
+  install -D -m 644 ../rsyncd.conf ${pkgdir}/etc/rsyncd.conf || return 1
+  install -D -m 644 ../rsync.xinetd ${pkgdir}/etc/xinetd.d/rsync || return 1
+}
diff --git a/abs/extra-testing/rsync/rsync.xinetd b/abs/extra-testing/rsync/rsync.xinetd
new file mode 100644
index 0000000..f5b6b1e
--- /dev/null
+++ b/abs/extra-testing/rsync/rsync.xinetd
@@ -0,0 +1,11 @@
+service rsync
+{
+        socket_type             = stream
+        wait                    = no
+        user                    = root
+        server                  = /usr/bin/rsync
+        server_args             = --daemon
+        log_on_success  += HOST DURATION
+        log_on_failure  += HOST
+        disable                 = yes
+}
diff --git a/abs/extra-testing/rsync/rsyncd b/abs/extra-testing/rsync/rsyncd
new file mode 100644
index 0000000..e1313dc
--- /dev/null
+++ b/abs/extra-testing/rsync/rsyncd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+  start)
+    stat_busy "Starting rsyncd"
+    [ ! -f /var/run/daemons/rsyncd ] && /usr/bin/rsync --daemon
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      pgrep -of "/usr/bin/rsync --daemon" > /var/run/rsyncd.pid
+      add_daemon rsyncd
+      stat_done
+    fi
+    ;;
+
+  stop)
+    stat_busy "Stopping rsyncd"
+    [ -f /var/run/rsyncd.pid ] && kill `cat /var/run/rsyncd.pid`
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon rsyncd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/extra-testing/rsync/rsyncd.conf b/abs/extra-testing/rsync/rsyncd.conf
new file mode 100644
index 0000000..f7161f3
--- /dev/null
+++ b/abs/extra-testing/rsync/rsyncd.conf
@@ -0,0 +1,16 @@
+uid = nobody
+gid = nobody
+use chroot = no
+max connections = 4
+syslog facility = local5
+pid file = /var/run/rsyncd.pid
+
+[ftp]
+        path = /home/ftp
+        comment = ftp area
+
+#[cvs]
+#        path = /data/cvs
+#        comment = CVS repository (requires authentication)
+#        auth users = tridge, susan
+#        secrets file = /etc/rsyncd.secrets
diff --git a/abs/extra-testing/setuptools/PKGBUILD b/abs/extra-testing/setuptools/PKGBUILD
new file mode 100644
index 0000000..53c26a9
--- /dev/null
+++ b/abs/extra-testing/setuptools/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 16826 2008-10-22 12:40:52Z douglas $
+# Maintainer: simo <simo@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+
+pkgname=setuptools
+pkgver=0.6c9
+pkgrel=2
+pkgdesc="setuptools is a collection of enhancements to the Python distutils"
+license=('PSF')
+arch=(i686 x86_64)
+url="http://peak.telecommunity.com/DevCenter/setuptools"
+depends=('python')
+source=(http://cheeseshop.python.org/packages/source/s/$pkgname/$pkgname-$pkgver.tar.gz)
+
+md5sums=('3864c01d9c719c8924c455714492295e')
+
+build() {
+  cd $startdir/src/$pkgname-$pkgver
+  mkdir -p $startdir/pkg/usr/lib/python2.6/site-packages
+  python setup.py install --root=$startdir/pkg
+  echo "/usr/lib/python2.6/site-packages/$pkgname-$pkgver-py2.6.egg" > $startdir/pkg/usr/lib/python2.6/site-packages/setuptools.pth
+}
diff --git a/abs/extra-testing/v4l-dvb-dvico/PKGBUILD b/abs/extra-testing/v4l-dvb-dvico/PKGBUILD
new file mode 100644
index 0000000..4f4de06
--- /dev/null
+++ b/abs/extra-testing/v4l-dvb-dvico/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
+
+pkgname=v4l-dvb
+_kernver=2.6.27-ARCH
+pkgver=1
+pkgrel=1
+pkgdesc="V4L-DVB drivers from mercurial"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://linuxtv.org/"
+depends=('kernel26')
+makedepends=(kernel-headers)
+install=v4l-dvb.install
+source=(http://linuxtv.org/hg/~pascoe/xc-test/archive/tip.tar.bz2)
+
+build() {
+  cd $startdir/src/xc-test-d4f7804a393c
+  make KERNDIR=/lib/modules/$_kernver/build \
+  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver all || return 1
+  make KERNDIR=/lib/modules/$_kernver/build \
+  DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install || return 1
+  rm -fr $startdir/pkg/lib/modules/$_kernver/modules*
+}
diff --git a/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install b/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install
new file mode 100644
index 0000000..c87bb82
--- /dev/null
+++ b/abs/extra-testing/v4l-dvb-dvico/v4l-dvb.install
@@ -0,0 +1,23 @@
+# arg 1:  the new package version
+post_install() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1                
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+
+}
+
+# arg 1:  the old package version
+post_remove() {
+  KERNEL_VERSION='2.6.26-ARCH'
+  depmod -ae -v $KERNEL_VERSION  > /dev/null 2>&1        
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/extra-testing/xine-lib/ChangeLog b/abs/extra-testing/xine-lib/ChangeLog
index 57c843e..4b27a0a 100644
--- a/abs/extra-testing/xine-lib/ChangeLog
+++ b/abs/extra-testing/xine-lib/ChangeLog
@@ -1,3 +1,15 @@
+2008-12-05  Eric Belanger  <eric@archlinux.org>
+
+	* xine-lib 1.1.15-4
+	* Rebuilt against heimdal 1.2.1
+	* Added xcb support
+
+2008-11-27  Eric Belanger  <eric@archlinux.org>
+
+	* xine-lib 1.1.15-3
+	* Added jack support (close FS#12020)
+	* Fixed several build issue (close FS#12117)
+
 2008-08-14  Eric Belanger  <eric@archlinux.org>
 
 	* xine-lib 1.1.15-1
diff --git a/abs/extra-testing/xine-lib/PKGBUILD b/abs/extra-testing/xine-lib/PKGBUILD
index de79173..2988b74 100644
--- a/abs/extra-testing/xine-lib/PKGBUILD
+++ b/abs/extra-testing/xine-lib/PKGBUILD
@@ -1,36 +1,44 @@
-# $Id: PKGBUILD 10479 2008-08-29 07:46:38Z pierre $
+# $Id: PKGBUILD 20666 2008-12-06 08:58:36Z allan $
 # Maintainer: Eric Belanger <eric@archlinux.org>
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=xine-lib
 pkgver=1.1.15
-pkgrel=2
+pkgrel=4
 pkgdesc="A free video player for Unix"
 arch=('i686' 'x86_64')
 url="http://xinehq.de/"
 license=('LGPL' 'GPL')
-depends=('libgl' 'libxvmc' 'flac>=1.1.4' 'libvorbis' 'sdl' 'libmng' 'libtheora'
-         'libxcb' 'wavpack' 'ffmpeg>=20080715')
-makedepends=('pkgconfig' 'libtool' 'automake' 'autoconf' 'imagemagick' 
-             'smbclient' 'mesa' 'alsa-lib' )
+depends=('libgl' 'libxvmc' 'esound' 'flac>=1.1.4' 'libvorbis' 'sdl' 'libmng' 'libtheora'
+         'libxcb' 'wavpack' 'ffmpeg>=20080715' 'heimdal>=1.2.1')
+makedepends=('pkgconfig' 'libtool' 'imagemagick' 'smbclient' 'mesa' 'alsa-lib' 
+             'vcdimager' 'jack-audio-connection-kit')
 options=('!libtool')
 source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.bz2
-        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-header.patch)
-md5sums=('42a2b4893b7f892eb334de2fc36d49c8' '9776df4eb54d2f1f68d8268adbc3b5c2'
-         'b139ee72700f8d118f9051e9140473f5')
+        xine-lib-1.1.1-configure-no-mcpu-march.patch xine-header.patch xine-imagemagick.patch)
+md5sums=('42a2b4893b7f892eb334de2fc36d49c8' '9776df4eb54d2f1f68d8268adbc3b5c2'\
+         'b139ee72700f8d118f9051e9140473f5' '45d248d45b747f049129925cbf25716d')
+sha1sums=('bcb567ea2a11c5f26b2384d5400b8466ea9048c6'
+          '121a8358d7919b2e51067412373f52848290338a'
+          '30cd75db3f0c0002f467d85466f1c404452397df'
+          'f0a0c04d5dfa3d0cd9246a1310f628deff489c12')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
-  patch -Np0 -i ../xine-lib-1.1.1-configure-no-mcpu-march.patch || return 1
-  patch -p0 -i ../xine-header.patch || return 1
+
+  patch -p0 < ../xine-lib-1.1.1-configure-no-mcpu-march.patch || return 1
+  patch -p0 <../xine-header.patch || return 1
+  #patch -p1 <../xine-imagemagick.patch || return 1
+
   libtoolize --force --copy || return 1
   aclocal -I m4 || return 1
   autoconf || return 1
   automake --add-missing || return 1
 
   ./configure --prefix=/usr --with-w32-path=/usr/lib/codecs \
-    --with-xv-path=/usr/lib --with-libflac --with-wavpack \
-    --without-arts --without-jack --without-speex \
+    --with-xv-path=/usr/lib --with-xxmc-path=/usr/lib --with-xvmc-path=/usr/lib \
+    --with-libflac --with-wavpack --with-xcb \
+    --without-arts --with-jack --without-speex \
     --disable-gnomevfs --without-pulseaudio --disable-aalib \
     --disable-modplug --with-external-ffmpeg || return 1
   make || return 1
diff --git a/abs/extra-testing/xine-lib/xine-imagemagick.patch b/abs/extra-testing/xine-lib/xine-imagemagick.patch
new file mode 100644
index 0000000..9faa4ab
--- /dev/null
+++ b/abs/extra-testing/xine-lib/xine-imagemagick.patch
@@ -0,0 +1,11 @@
+--- xine-lib-1.1.15.orig/src/libxinevdec/image.c
++++ xine-lib-1.1.15/src/libxinevdec/image.c
+@@ -110,7 +110,7 @@
+     width = MagickGetImageWidth(wand) & ~1; /* must be even for init_yuv_planes */
+     height = MagickGetImageHeight(wand);
+     img_buf = malloc(width * height * 3);
+-    MagickGetImagePixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf);
++    MagickGetAuthenticPixels(wand, 0, 0, width, height, "RGB", CharPixel, img_buf);
+     DestroyMagickWand(wand);
+ 
+     _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, width);
-- 
cgit v0.12


From e01618981d541d002dff78efcf615047f1afb80f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 11 Jan 2009 14:36:17 -0800
Subject: Rebuilt LinHES-system to include tjc's changes.  Modified
 v4l-dvb-hdpvr to reflect new kernel.

---
 abs/core-testing/LinHES-system/PKGBUILD  | 2 +-
 abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/LinHES-system/PKGBUILD b/abs/core-testing/LinHES-system/PKGBUILD
index cad31f3..8135cff 100644
--- a/abs/core-testing/LinHES-system/PKGBUILD
+++ b/abs/core-testing/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-system
 pkgver=1.0
-pkgrel=17
+pkgrel=18
 arch=('i686')
 MVDIR=$startdir/pkg/usr/LH
 BINDIR=$startdir/pkg/usr/bin
diff --git a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
index f2bc1d3..632a13b 100644
--- a/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
+++ b/abs/extra-testing/v4l-dvb-hdpvr/PKGBUILD
@@ -2,9 +2,9 @@
 # Maintainer: Cecil Watson<knoppmyth@gmail.com>
 
 pkgname=v4l-dvb-hdpvr
-_kernver=2.6.26-ARCH
+_kernver=2.6.27-ARCH
 pkgver=1
-pkgrel=1
+pkgrel=2
 pkgdesc="V4L-DVB drivers for HD-PVR from mercurial"
 arch=('i686' 'x86_64')
 license=('GPL2')
-- 
cgit v0.12


From 634dff8fdd0a9c866c92f0020f282c23d1a438d8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 11 Jan 2009 18:26:44 -0800
Subject: Rebuilt to obtain package w/ template fix for xorg.

---
 abs/core-testing/LinHES-config/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index aac97cc..c0aaf46 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=1.0
-pkgrel=154
+pkgrel=161
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan )
-- 
cgit v0.12